मैं setters और getters के साथ एक वस्तु बनाने के लिए कोशिश कर रहा हूँ, और यह मेरा कोड है:Google क्रोम ऑब्जेक्ट.defineProperty में गलत व्यवहार?
var Player = function(height){
var _height = height;
Object.defineProperty(this, 'height', {
enumerable: false
, configurable: true
, writable: false
, get: function(){return _height;}
, set: function(val){_height = val;}
});
}
वर MyPLAYER = नए प्लेयर (10);
हालांकि defineProperty विकल्पों में से writable
संपत्ति गलत पर सेट है, मैं निम्नलिखित त्रुटि मिलती है:
Invalid property. A property cannot both have accessors and be writable or have a value, #<Object>
जब writable
निश्चित रूप से सही पर सेट है एक ही हो रहा है, लेकिन त्रुटि अगर मैं writable
लाइन हटा देता हूं तो गायब हो जाता है।
क्या मैं कुछ गलत कर रहा हूं, या यह एक बग है? यह गूगल क्रोम पर हो रहा है, संस्करण 30.0.1599.66
त्रुटि वर्णनात्मक प्रतीत होती है ... आपके पास एक गैर-लेखन योग्य संपत्ति के लिए गेटर और सेटर क्यों होगा? – elclanrs
त्रुटि दोनों मामलों में प्रदर्शित हो रही है, 'लिखने योग्य: सत्य' और 'लिखने योग्य: झूठी'। क्या यह अजीब नहीं है? – Loupax
आप या तो केवल 'लिखने योग्य' और 'मान' या' get' और 'set' गुणों को प्राप्त कर सकते हैं, उनमें से कोई मिश्रण नहीं। चूंकि आप 'लिखने योग्य' निर्दिष्ट करते हैं, इसलिए आप 'get' या' set' का उपयोग नहीं कर सकते हैं। [मोज़िला एमडीएन] देखें (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) –