Изучаю книгу из серии You dont know JS: cover this & objects, Келли Симпсона! Возник вопрос по оператору instanceof
! Не понятна следующая фраза из книги:
Если вы используете встроенную утилиту .bind(...)
для создания жестко привязанной функции, то у созданной функции не будет свойства .prototype
. При использовании instanceof
с такой функцией прозрачно подставляется .prototype
целевой функции, из которой была создана жестко привязанная функция.
Использование функции с жесткой привязкой для "вызова конструктора" крайне маловероятно, но если вы сделаете это, то она будет вести себя так, как если бы вы вызвали целевую функцию. Это значит, что вызов instanceof с жестко привязанной функцией также ведет себя и в соответствии с оригинальной функцией
Вот собственно то, что я решил проверить:
function foo(age){
this.age=age;
return this.name;
};
var a={name: "kristine"};
var b = foo.bind(a);
document.write(b()+"<br>"); //kristine
var c=new b(23);
document.write(c.age+"<br>"); //23
document.write(c instanceof foo); //true
foo()
, связал его "жёстко" с объектом a
создал новый объект на основе конструктора, проверил этот новый объект, есть ли в цепочке его прототипов foo()
вернулось true
. В чём тогда суть того, о чем пишет автор книги? Просто данный автор славится тем, что разрушает "мифы" о Javascript, и вполне возможно, что я просто его недопонимаю местами, быть может он в очередной раз решил показать то место, где разработчики думают так, но на самом деле происходит другое! Просьба объяснить на доступном языке, можно даже с несложными примерами, тем кому не сложно! Спасибо!
Возможно, автор имеет в виду, что .bind() возвращает ту же функцию, но с фиксированный this. Судя по языку изложения, вы используете машинный перевод. Попробуйте перечитать оригинал, может, будет лучше понятно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет у меня есть такая вот проверка на авторизованность, если пользователь открывает страницу и он не авторизован то его редиректит...
Мне нужен пошаговый визард для редактирования моделиОстановился на jQuery Steps
Есть массив с объектамиНужно проверить есть ли данное свойство объекта в массиве с объектами
Есть два массива с объектамиНужно сверить если элементы первого массива есть во втором