js表示のバインディングcall()、apply()、bind()の違い

注意: 

call()の場合、パラメータは1つずつ渡す必要があるため、値パラメータのみを渡す場合、または値パラメータを渡さない場合は、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