TypeError: setting getter-only property "x" (Firefox) TypeError: Cannot set property "prop" of #<Object> which has only a getter (Chrome)é误类å
ä»
å¨ä¸¥æ ¼æ¨¡å¼ä¸æ¥ TypeError
é误ã
该é误æç¤ºåºç°äºè¯å¾ç»ä¸ä¸ªä»
ä»
è®¾ç½®äº getter ç¹æ§ç屿§èµæ°å¼çæ¶åãå¨éä¸¥æ ¼æ¨¡å¼ä¸ä¼è¢«éé»å¿½ç¥ï¼èå¨ä¸¥æ ¼æ¨¡å¼ä¸ä¼æ¥ TypeError
é误ã
ä¸é¢çä¾åå±ç¤ºäºå¦ä½ä¸ºä¸ä¸ªå±æ§è®¾ç½® getter ç¹æ§ãç±äºæ²¡æè®¾ç½® setter ç¹æ§ï¼æä»¥å¨è¯å¾å° temperature 屿§å¼è®¾ç½®ä¸º 30 çæ¶å伿¥ TypeError çé误ãç¸å
³ç»èä¿¡æ¯å¯ä»¥åè Object.defineProperty()
页é¢ã
"use strict";
function Archiver() {
var temperature = null;
Object.defineProperty(this, "temperature", {
get: function () {
console.log("get!");
return temperature;
},
});
}
var arc = new Archiver();
arc.temperature; // 'get!'
arc.temperature = 30;
// TypeError: setting getter-only property "temperature"
è³äºä¿®å¤é®é¢çæ¹æ³ï¼å¯ä»¥å°ç¬¬ 16 è¡ç代ç ç§»é¤ï¼å 为å®è¯å¾ä¸º temperature 屿§èµå¼ï¼æè æ¯ä¸ºå®æ·»å ä¸ä¸ª setter ç¹æ§ï¼å°±åä¸é¢è¿æ ·ï¼
"use strict";
function Archiver() {
var temperature = null;
var archive = [];
Object.defineProperty(this, "temperature", {
get: function () {
console.log("get!");
return temperature;
},
set: function (value) {
temperature = value;
archive.push({ val: temperature });
},
});
this.getArchive = function () {
return archive;
};
}
var arc = new Archiver();
arc.temperature; // 'get!'
arc.temperature = 11;
arc.temperature = 13;
arc.getArchive(); // [{ val: 11 }, { val: 13 }]
ç¸å
³å
容
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4