ÐовÑоÑнÑй bind
важноÑÑÑ: 5
Ðожем ли Ð¼Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ this дополниÑелÑнÑм ÑвÑзÑванием?
ЧÑо вÑÐ²ÐµÐ´ÐµÑ ÑÑÐ¾Ñ ÐºÐ¾Ð´?
function f() {
alert(this.name);
}
f = f.bind( {name: "ÐаÑÑ"} ).bind( {name: "ÐеÑÑ" } );
f();
ÐÑвеÑ: ÐаÑÑ.
function f() {
alert(this.name);
}
f = f.bind( {name: "ÐаÑÑ"} ).bind( {name: "ÐеÑÑ"} );
f(); // ÐаÑÑ
ÐкзоÑиÑеÑкий обÑÐµÐºÑ bound function, возвÑаÑаемÑй пÑи пеÑвом вÑзове f.bind(...), Ð·Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ ÐºÐ¾Ð½ÑекÑÑ (и аÑгÑменÑÑ, еÑли они бÑли пеÑеданÑ) ÑолÑко во вÑÐµÐ¼Ñ ÑозданиÑ.
СледÑÑÑий вÑзов bind бÑÐ´ÐµÑ ÑÑÑанавливаÑÑ ÐºÐ¾Ð½ÑекÑÑ Ñже Ð´Ð»Ñ ÑÑого обÑекÑа. ÐÑо ни на ÑÑо не повлиÑеÑ.
Ðожно ÑделаÑÑ Ð½Ð¾Ð²ÑÑ Ð¿ÑивÑзкÑ, но нелÑÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑÑÑеÑÑвÑÑÑÑÑ.