JavaScript で構成されたオブジェクトをいじり始めましたが、何かが原因でいくつかの問題が発生しています。
このコードをチェックしてください:
function Monster() {
}
function Animal() {
Object.defineProperty(this, "name", {
set: function(n) { },
get: function() { return "Jim"; } // hard-coded to demonstrate problem
});
}
Monster.prototype = new Animal();
var monster = new Monster();
monster.name = "John";
monster.name // Still returns Jim. I need to assign the property to THIS object, so Jim is shadowed by John.
コメントにあるように、ゲッターが返すようにハードコーディングされているため、これは「Jim」を出力しています。
Monster.name を呼び出すたびにプロトタイプを変更したくありません - Monster インスタンスに新しいシャドウ プロパティが必要です。どうすればそれを管理できますか?