私が理解しているように、関数のプロトタイププロパティは、その関数からインスタンス化されたすべてのオブジェクトにメソッド/プロパティを追加する方法です。Function.prototype.xを宣言した後にFunction.xが動作するのはなぜですか?
だから私はこの
function Person(){}
Person.prototype.saySomething = function(){ alert("hi there"); }
Person.saySomething();
ような何かをしようとすると、私はエラーを取得するイムはPersonオブジェクトのインスタンス上で機能を実行していないとして理にかなっている、「Person.saySomethingは関数ではありません」。
しかし、以下のコードを実行するのはなぜですか?
Function.prototype.sayHi = function(){ alert("hi!");}
Function.sayHi();
おそらくこれを例として使用していますが、ネイティブオブジェクトのプロトタイプ作成は悪い考えです。 – jbabey
私は理解しています。私はいくつかのフレームワークでそれを見て、どのように動作しているのだろうと思っていた。 – levi
@jbabey:いつそれが悪い考えですか?常に?私は反対する必要があります。 –