"Javascript:The good parts"という本を読んでいます。次のコードは動作しないのはなぜ
:TypeError:Function.prototype.method()を呼び出すとthis.prototypeが未定義です
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
UPDATE:
は今、私はタイプの拡張に関する章を読んでいますか?
js> Function.prototype.method("test", function(){print("TEST")});
typein:2: TypeError: this.prototype is undefined
しかし、次のコードで問題なく動作します:
js> Function.method("test", function(){print("TEST")});
function Function() {[native code]}
このコードが動作するのはなぜ?
js> var obj = {"status" : "ST"};
js> typeof obj;
"object"
js> obj.method = function(){print(this.status)};
(function() {print(this.status);})
js> obj.method();
ST
"obj"はオブジェクトです。
しかし、私はメソッド "メソッド"を呼び出すことができます。
Function.prototype.methodとobj.methodの違いは何ですか?
ありがとうございます。今分かります。私はこの行に次の行に注意を払わなかった.prototype [name] = func; –