call( ),apply( )和bind( )方法
call() 方法是預(yù)定義的 JavaScript 方法取董。它可以用來調(diào)用所有者對象作為參數(shù)的方法杀怠。
通過 call()母截,能夠使用屬于另一個對象的方法惜互。
apply()與call()很類似蹋订,但call() 和 apply() 不同之處是:
call() 方法分別接受參數(shù)。
apply() 方法接受數(shù)組形式的參數(shù)刻伊。
所以如果要使用數(shù)組而不是參數(shù)列表露戒,則 apply() 方法非常方便。
Function.prototype.bind()
bind()方法主要就是將函數(shù)綁定到某個對象捶箱,bind()會創(chuàng)建一個函數(shù)智什,函數(shù)體內(nèi)的this對象的值會被綁定到傳入bind()中的第一個參數(shù)的值,例如:f.bind(obj)丁屎,實際上可以理解為obj.f()荠锭,這時f函數(shù)體內(nèi)的this自然指向的是obj;
例子:
var emp={
id:1,
name:"roku"
};
function printInfo(hobby1,hobby2,hobby3){
console.log("姓名:"+this.name,hobby1,hobby2,hobby3);
}
printInfo.call(emp,"吃飯","睡覺","打游戲");
printInfo.apply(emp,["吃飯","睡覺","打游戲"]);
var empPrintInfo = printInfo.bind(emp,"吃飯","睡覺","打游戲");
empPrintInfo();