0
アクセサでプロパティを定義しようとするとエラーが発生します。無効なプロパティ記述子:ここに私のコードJavascriptが設定され、メソッドがエラーになる
var person = {}; Object.defineProperty(person, 'birthYear', { value: 1997, writable: true, enumerable: true, configurable: false, set: function (value) { this.birthYear = value; }, get: function() { return 'Birth year - ' + this.birthYear; } }); console.log(person.birthYear);
エラーテキストです。アクセサーと値または書き込み可能な属性の両方を指定することはできません。
私が定義し、このようなメソッドを得ることができない場合、私はそれを行うことができますか?エラーメッセージで
あなたは 'value'を削除しますが、' this.birthYear'を取得する 'birthYear'ゲッタは無限再帰を作成するので、このgetterは必要ありません。別のプロパティ名やシンボル、変数など、別の場所に値を格納する必要があります。 –
[prototype](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype)の代わりに1つのオブジェクトにプロパティを定義する理由はありますか –
...とFYIでは、 'Object.create'を使ってオブジェクト作成/定義を1ステップで行うことができます。 –