2016-04-25 4 views
0

この簡単な質問に対する答えは見つかりません。(関数インスタンス).prototypeフィールドは、デフォルトではどこを指していますか?

var fun1 = function() {}; 

fun1.prototypeには?私はfun1.prototype = someObjectsomeObject.constructor = fun1も設定していないことを覚えておいてください。では、変数fun1.prototypeはどこでデフォルトで参照されていますか?

---編集1 ---

はそれを手に入れた:あなたは新しい機能fun1を作成する場合は、JavaScriptの実装はfun1.prototypeの下に新しいオブジェクト{ constructor: fun1 }を作成します。

Object.prototypeのようなあらかじめ定義されたオブジェクトを指していた可能性があります。

+3

F12でチェックしてみませんか? – Redu

答えて

1

constructorというプロパティが関数を指しているオブジェクトを指します。何かのように

{ 
    constructor: fun1, 
} 
+0

しかし、someObject.constructor = fun1もfun1.prototype = someObjectも設定していません。私はJavascriptエンジンがfun1.prototypeの下に新しい空のオブジェクトを作成すると仮定していますか? –

+1

はい、これはすべて、関数を作成するときにJavaScript自体によって行われます。あなたはそのデフォルト値が何であるかを尋ねました。 –

+0

@ potato300:デフォルトの '.prototype'オブジェクトが必要ない場合は、矢印関数を使用できます – Bergi

関連する問題