1.1:x
に直接アクセスすると、linkingObject
に直接アクセスできませんが、linkingObject.prototype
にアクセスするのはなぜですか?プロトタイプのアクセスと動作
1.2:x
をlinkingObject
に一度検索すると、デフォルトでエンジンが試合され、x
のプロトタイプが検索されますか? .prototype
を明示的に指定する必要があるのはなぜですか?
1.3:これは奇妙なことをさらに説明するために、baseObject
がプロトタイプlinkingObject
であり、x
プロパティが含まれていることも記載されています。
const baseObject = function() {};
baseObject.prototype.x = 5;
const linkingObject = Object.create(baseObject);
console.log(linkingObject.x); // 1.1: undefined
console.log(linkingObject.prototype.x); // 1.2: 5
console.log(linkingObject.prototype); // 1.3: baseObject { x:5 }
あなたは関数オブジェクトを継承しています。それをしないでください、ちょうど奇妙です。あなたは 'const baseObject = {x:5}'と '.prototype'プロパティ(' new'で使われるコンストラクタにのみ関係する)を必要としません。 – Bergi