bind方法是ecmascript5新增的方法,該方法在mdn上是這麼介紹的:
bind()方法建立乙個新的函式(稱為繫結函式), 當被呼叫時,將其this關鍵字設定為提供的值,在呼叫新函式時,在任何提供之前提供乙個給定的引數序列。
語法:fun.bind(thisarg[, arg1[, arg2[, ...]]])
引數thisarg表示:當繫結函式被呼叫時,該引數會作為this的指向。當使用new
操作符呼叫繫結函式時,該引數無效。
引數arg1, arg2, ...表示:
當繫結函式被呼叫時,這些引數將置於實參之前傳遞給被繫結的方法。
先來看個例子:
this.name="jack";
var demo=
}console.log(demo.getname());//輸出rose 這裡的this指向demo
var another=demo.getname;
console.log(another())//輸出jack 這裡的this指向全域性物件
//運用bind方法更改this指向
var another2=another.bind(demo);
console.log(another2());//輸出rose 這裡this指向了demo物件了
bind的應用
可以對乙個函式預設初始引數:
function a()
var b=a.bind(this,15,20)
alert(b());//彈出 15,20
var s=b(25,30);
alert(s);//彈出 15,20,25,30
JS中的bind 方法
function.prototype.bind 方法 bind 方法主要就是將函式繫結到某個物件,bind 會建立乙個函式,函式體內的this物件的值會被繫結到傳入bind 第乙個引數的值,例如,f.bind obj 實際上可以理解為obj.f 這時,f函式體內的this自然指向的是obj 例子va...
JS中的bind 方法
function.prototype.bind 方法 bind 方法主要就是將函式繫結到某個物件,bind 會建立乙個函式,函式體內的this物件的值會被繫結到傳入bind 第乙個引數的值,例如,f.bind obj 實際上可以理解為obj.f 這時,f函式體內的this自然指向的是obj 例子va...
JS中的bind 方法
bind 方法主要就是將函式繫結到某個物件,bind 會建立乙個函式,函式體內的this物件的值會被繫結到傳入bind 第乙個引數的值,例如,f.bind obj 實際上可以理解為obj.f 這時,f函式體內的this自然指向的是obj 例子var a func c hello a.b undefi...