내가 세터와 게터를 가진 개체를 만들려고하고,이 내 코드입니다 :Google 크롬 Object.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;}
});
}
var에 myPlayer = 새로운 플레이어 (10);
defineProperty 옵션의 writable
속성이 false로 설정되어 있지만, 나는 다음과 같은 오류가 발생합니다 :
Invalid property. A property cannot both have accessors and be writable or have a value, #<Object>
writable
은 물론 true로 설정하면 같은 일이 일어나고
하지만 오류 writable
행을 삭제하면 사라집니다.
제가 잘못했거나 버그입니까? 이 Object.defineProperty
의 Mozilla MDN이 명확히, 구글 크롬에 버전 30.0.1599.66
오류가 설명이 ... 왜 쓰기 권한이없는 속성에 대한 getter 및 setter가 있습니까? – elclanrs
이 오류는'writable : true'와'writable : false' 둘 다에 표시됩니다. 이 이상하지 않니? – Loupax
'writable'과'value' 또는'get'과'set' 속성 만 가질 수 있습니다. '쓰기 가능 '을 지정 했으므로'get' 또는'set'을 사용할 수 없습니다. [Mozilla MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty)를 참조하십시오. –