コンストラクター1

971 ワード

JavaScriptでは、複数のオブジェクトを構成関数で作成した場合、この複数のオブジェクトの「Prottype」属性は同じオブジェクトを指します.この関連するオブジェクトは構造関数・prototypeです.彼らは同じオブジェクトを指しているからこそ、これらのオブジェクト間の連絡は完全に失われません.彼らは互いに関連しています.
1.コンストラクタのprototype属性は「Prottype」と同じですか?
同じではないです.私たちは対象の「Prottype」の属性が建物内の属性であることを知っています.これはアクセスできません.関数のprototype属性については、アクセスできます.関数の「Prottype」は、Funtions.prototypeを指します.次の例を見てもいいです.
function foo(){}
console.log(foo.prototype)//foo {}
console.log(Object.getPrototypeOf(foo) === foo.prototype)//false
console.log(Object.getPrototypeOf(foo) === Function.prototype)//true
2.コンストラクタが作成したオブジェクトの[Prottype]とコンストラクタの関係
作成したオブジェクトの「Prottype」属性は、構造関数のプロトタイプを指します.次の例を見ます.
function foo(){}
var obj = new foo()
console.log(Object.getPrototypeOf(obj) === foo.prototype)//true
実は、new foo()という関数の呼び出しは、実際には作成されたオブジェクトに直接的に関連していません.この関連は副作用にすぎません.new foo()は、間接的に目的を達成しただけです.他のオブジェクトに関連する新しいオブジェクトの構造関数で作成された新しいオブジェクトの「Prottype」属性は、構造関数のプロトタイプに関連付けられています.
END