मैं निकोलस जाकास द्वारा भयानक "वेब डेवलपर्स के लिए पेशेवर जावास्क्रिप्ट" पुस्तक से यह वास्तव में सरल उदाहरण का प्रयास कर रहा था, लेकिन मुझे यह नहीं पता कि मैं यहां क्या कर रहा हूं। कुछ सचमुच सरल होना चाहिए जो मुझे याद आया लेकिन मैं फंस गया हूं।Uncaught TypeError: केवल संपत्ति को पढ़ने के लिए असाइन नहीं किया जा सकता
'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);
त्रुटि मैं क्रोम कंसोल पर हो रही है है:
यहाँ कोड है
Uncaught TypeError: केवल संपत्ति # main.js की '_year' को पढ़ने के लिए आवंटित नहीं कर सकता: 31 Object.defineProperties.year.setmain.js: 39 (अनाम कार्य)
क्या कोई यह बता सकता है कि मैं गलत कहां गया हूं?
यहाँ fiddle
उत्तर के लिए धन्यवाद क्योंकि यह मुझे मेरे समाधान में ले जाता है। मेरे पास एक चर था: 'var thisObject = {name:' name ', id: 1};' और कोड में किसी बिंदु पर मैं 'thisObject = 1' सेट कर रहा था, (मुझे लगता है कि यह पुराना कोड था या बस नहीं था ' टी इसे ठीक से लिखते हैं ... और जब मैंने 'thisObject.name' का उपयोग करने या सेट करने का प्रयास किया, तो मुझे यह त्रुटि संदेश प्राप्त हुआ। जिस पंक्ति को मैंने एक पूर्णांक में' यह ऑब्जेक्ट 'सेट किया है, उसे हटाकर मेरी समस्या तय की गई है। उम्मीद है कि इससे किसी की मदद मिलती है। – Termato