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. Насправді код, який ви написали, призведе до помилки.