[解決済み] Uncaught TypeError: 読み取り専用プロパティに割り当てられない
2022-02-06 08:36:06
質問
Nicholas Zakasによる素晴らしい本「Professional JavaScript for Web Developers"」から、この本当に簡単な例を試していたのですが、ここで何が間違っているのかがわかりません。何かとても簡単なことを見逃しているに違いないのですが、行き詰っています。
以下はそのコードです。
'use strict';
var book = {};
Object.defineProperties(book, {
originYear: {
value: 2004,
writable: false
},
_year: {
value: 2004
},
edition: {
value: 1
},
year : {
get: function() {
return this._year;
},
set: function(newValue) {
if(newValue > this.originYear) {
this._year = newValue;
this.edition += newValue - this.originYear;
}
}
}
});
console.log(book.edition);
book.year = 2006;
console.log(book.edition);
Chromeのコンソールで出ているエラーは。
Uncaught TypeError: の読み取り専用プロパティ '_year' に代入できません。 #main.js:31 Object.defineProperties.year.setmain.js:39 (匿名関数)
どなたか、どこで間違ったのか説明していただけませんか?
以下は フィドル
解決方法は?
を使用する場合
Object.defineProperties
は、デフォルトで
writable
が設定されます。
false
ということで
_year
と
edition
は、実際には
読み取り専用
のプロパティを使用します。
に明示的に設定します。
writable: true
:
_year: {
value: 2004,
writable: true
},
edition: {
value: 1,
writable: true
},
チェックアウト この方法については、MDN .
writable
true
そのプロパティに関連付けられた値が代入演算子で変更できる場合のみ。
デフォルトはfalse
.
関連
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み] テスト
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】module.exports "モジュールが定義されていません"
-
[解決済み] React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】Google MAP API Uncaught TypeError: nullのプロパティ'offsetWidth'を読み取れませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】module.exports "モジュールが定義されていません"