bind()是在ecmascript5中新增的方法,用於將乙個函式繫結到乙個物件,成為其方法,還可以用於建構函式。
const obj =};
const getsum = obj.getsum;
console.
log(
getsum()
);//undefined
上面**輸出了undefined,getsum()執行時內部的this指向了window,而window並沒有sum這個屬性。接下來當呼叫getsum方法的時候我希望它能輸出sum的值。
const getsum = obj.getsum.
bind
(obj)
;
實現乙個bind需要兩個功能,返回乙個函式,繫結this,傳遞引數
function
bind
(fn, ctx)
return fn.
(ctx, args);}
}const obj =};
const getsum =
bind
(obj.getsum, obj)
;console.
log(
getsum()
);//20
js方法實現 bind
函式繫結 bind 方法建立乙個新的函式,在 bind 被呼叫時,這個新函式的 this 被指定為 bind 的第乙個引數,而其餘引數將作為新函式的引數,供呼叫時使用。var slice array.prototype.slice function.prototype.bind function r...
原生JS實現bind方法
bind方法建立乙個新函式。呼叫新函式時,this指向給定的物件,並且將給定的引數列表作為原函式的引數序列的前若干項。當使用new操作符建立bind函式的例項時,bind函式變成構造器,給定的物件引數失效,其餘引數仍然有效。function mybind function fn 臨時函式protot...
bind函式 模擬實現JS的bind方法
先看一下bind是什麼?var obj obj typeof function.prototype.bind functiontypeof function.prototype.bind functionfunction.prototype.bind.name bindfunction.protot...