instanceof
Ключове слово в JavaScript може бути досить заплутаним , коли він вперше зустрічається, так як люди схильні думати , що JavaScript не є об'єктно-орієнтована мова програмування.
- Що це?
- Які проблеми вона вирішує?
- Коли це доречно і коли ні?
"foo" instanceof String
=> false, 1 instanceof Number
=> false, {} instanceof Object
=> false. Скажи що?!
"foo" instanceof String => false
, правильно, тому що typeof "foo" == 'string'
. new String("foo") instanceof String => true
, тому що typeof String == 'function'
- слід ставитися до такої функції, як клас (визначення класу). Змінні стають instanceof
деякими function
(класом), коли ви призначаєте їх як var v = new AnythingWhatTypeofEqualsFunction()
. Це ж стосується і 1
. typeof 1 == 'number'
- "число" не є "функцією" :) Далі - {} instanceof Object
знаходиться TRUE
у вузлі та сучасних браузерах
({}) instanceof Object
повернеться true
. Насправді код, який ви написали, призведе до помилки.