call( ),apply( )和bind( )方法
call() 方法是预定义的 JavaScript 方法。它可以用来调用所有者对象作为参数的方法。
通过 call(),能够使用属于另一个对象的方法。
apply()与call()很类似,但call() 和 apply() 不同之处是:
call() 方法分别接受参数。
apply() 方法接受数组形式的参数。
所以如果要使用数组而不是参数列表,则 apply() 方法非常方便。
Function.prototype.bind()
bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值,例如:f.bind(obj),实际上可以理解为obj.f(),这时f函数体内的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();