Изучаю книгу из серии 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. Судя по языку изложения, вы используете машинный перевод. Попробуйте перечитать оригинал, может, будет лучше понятно.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Всем привет у меня есть такая вот проверка на авторизованность, если пользователь открывает страницу и он не авторизован то его редиректит...
Мне нужен пошаговый визард для редактирования моделиОстановился на jQuery Steps
Есть массив с объектамиНужно проверить есть ли данное свойство объекта в массиве с объектами
Есть два массива с объектамиНужно сверить если элементы первого массива есть во втором