以下はJSバインディング用のES5シムです。わかりません自己 .applyバインド関数にあります。 私はapplyメソッドの使い方を知っていますが、ここではの自己が指していますか?それは
の機能と思われますが、ここで自己はオブジェクトのように見えます。バインディング関数用のES5シムはJavaScriptです
if (!Function.prototype.bind) {
Function.prototype.bind = function(obj) {
var slice = [].slice,
args = slice.call(arguments, 1),
self = this,
nop = function() {},
bound = function() {
return self.apply(this instanceof nop ? this : (obj || {}), // self in this line is supposed
to // represent a function ?
args.concat(slice.call(arguments)));
};
nop.prototype = self.prototype;
bound.prototype = new nop();
return bound;
};
}
私は、これはこの時点で、古代の質問です知っているが、それは、Googleの検索アナリティクスではかなり高いアップしています。受け入れられた答えはかなり誤解を招く。私はいくつかの追加の詳細と新しい答えを掲載しました。あなたが興味を持っているかどうか見てください。 – bigtunacan