JS實現bind方法

2021-10-07 03:05:42 字數 716 閱讀 2121

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...