注意:
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();