私はいつもこの 2 つの使い方を忘れてしまい、記録のために書き留めます。
それらの関数はまったく同じですが、渡されるパラメーターが異なります
適用
apply は 2 つのパラメーターを受け入れます。最初のパラメーターは、関数本体内のこのオブジェクトのポインターを指定します。2 番目のパラメーターは、このコレクション内の要素をパラメーターとしてオブジェクトに渡します。呼び出し先:
var func = function(a, c, c){ alert([a,b,c]); //[1,2,3] } func.apply(null, [1,2,3]);
電話
呼び出しで渡されるパラメータは固定されていません。apply と同様に、最初のパラメータも関数本体の this ポインタを表し、2 番目のパラメータから順に関数に渡されます。
var func = function(a, b, c){ alert([a,b,c]); //[1,2,3] } func.call(null, 1,2,3);
お電話・お申込みの目的
1. これを を指すように変更します。
2.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();