js的显示绑定call(),apply(),bind()的区别

注意: 

在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();

猜你喜欢

转载自blog.csdn.net/baidu_39043816/article/details/108535890
今日推荐