JavaScript 配列操作 - callとapplyの違いは何ですか?

JavaScript オブジェクト一覧 / javascript / performance / function / dynamic

関数を呼び出すために callapply を使用することの違いは何ですか?

var func = function() {
  alert('hello!');
};

iridescent



Answer #1
function Person(name) {
    this.name = name; 
}
Person.prototype.getName = function(a,b) { 
     return this.name + " " + a + " " + b; 
}

var reader = new Person('John Smith');

reader.getName = function() {
   // Apply and Callは関数を実行し、値を返します

   // 'getName'プロトタイプを抽出するさまざまな方法にも注意してください
   var baseName = Object.getPrototypeOf(this).getName.apply(this,["is a", "boy"]);
   console.log("Apply: " + baseName);

   var baseName = Object.getPrototypeOf(reader).getName.call(this, "is a", "boy"); 
   console.log("Call: " + baseName);

   //バインドは呼び出すことができる関数を返します
   var baseName = Person.prototype.getName.bind(this, "is a", "boy"); 
   console.log("Bind: " + baseName());
}

reader.getName();
/ *出力適用:ジョン・スミスは男の子です呼び出し:ジョン・スミスは男の子ですバインド:ジョン・スミスは男の子です* /