注意:
在call()的情况下,参数需要一个接一个地传递,所以当我们只传递一个值参数或没有值参数时,请就使用call()。如果要传递多个值参数,则使用apply()。
getName.bind()不会调用函数getName()。它返回一个新函数newFn,我们可以像newFn()那样调用它。
var getName = function(hobby1, hobby2) {
console.log(this.name + ' likes ' + hobby1 + ' , ' + hobby2);
}
var user = {
name: 'Tapas',
address: 'Bangalore'
};
// call()方法
var hobbies = ['Swimming', 'Blogging'];
getName.call(user, hobbies[0], hobbies[1]);
// apply()方法
var hobbies = ['Swimming', 'Blogging'];
getName.apply(user, hobbies);
// apply()方法
var hobbies = ['Swimming', 'Blogging'];
var newFn = getName.bind(user, hobbies[0], hobbies[1]);
newFn();