これらの2つのことを使用することを常に忘れて、記録を作るために書き留めてください。
それらの関数はまったく同じですが、渡されたパラメーターは異なります
適用する
Applyは2つのパラメーターを受け入れます。最初のものは関数本体のこのオブジェクトの指された指しを定式化し、2番目のオブジェクトはサブスクリプトを含むセットです(オブジェクトはトラバースすることができます)。適用メソッドは、このセットの要素を呼び出した関数のパラメーターとして渡します。
var func = function(a、c、c){alert([a、b、c]); // [1,2,3]} func.apply(null、[1,2,3]);電話
コールで渡されたパラメーターは修正されていません。適用と同じことは、最初のパラメーターが関数本体のこの指さしを表していることです。 2番目のパラメーターが開始されると、各パラメーターは順番に関数に渡されます。
var func = function(a、b、c){alert([a、b、c]); // [1,2,3]} func.call(null、1,2,3);呼び出しは、apllyの構文砂糖です。最初のパラメーターがnullの場合、これは関数本文で、ブラウザのウィンドウであるホストオブジェクトを指します。
通話の使用と適用
1。このポイントを変更します
上記の例は次のとおりです
2。function.prototype.bind
function.prototype.bindをシミュレートします
function.prototype.bind = function(context){var self = this; return function(){return self.apply(context、arguments); }}; var obj = {name: 'cxs'}; var func = function(){alert(this.name); // cxs} .bind(obj); fun();