Сообщение от platedz
|
Насколько я понял, bind передает все свойства одного объекта другому.
|
Совершенно неверно. bind не передаёт никаких свойств объектов. Он привязывает аргументы к функции.
Инструкция
one.m.bind(two)(" = ") //bind привязывает объект two в качестве аргумента this к функции one.m
эквивалентна
one.m.call(two, " = ")
Пример:
var one = { m: function(arg){alert("SW"+arg+this.s);
alert(JSON.stringify(this));
alert(this===two);}}
var two = { s: "sw"}
one.m.bind(two)(" = ")
Как видим, при вызове функции, возвращаемой выражением one.m.bind(two) аргумент this принимает значение, равное two.