반환, 그냥 "일반"값이 아닌 게터/세터와 같은 객체의 속성을 정의 할 수 있습니다 : 자바 스크립트가 아닌 값을 특성
Object.defineProperty(obj, 'complex_property', {
get: function getter() { return this.protected; },
set: function setter(value) { this.protected = value; }
});
은 비를 반환하는 방법이 있나요 이 getter 함수가 먼저 평가되지 않고 객체의 value 속성을 평가할 수 있습니까?
obj.property = function(name) { return this.[ name ]; };
// Doesn't work:
// ReferenceError: invalid assignment left-hand side
obj.property('complex_property') = 5;
마지막 줄 효과적으로 6 = 5
읽기 - 분명 오류 - this.complex_property
가 먼저 평가되기 때문에, 다음 돌아왔다. 클로저와 getter-setter 속성을 결합하는 것은 "개인"속성을 시뮬레이션하고 실제 get/set 함수를 사용하지 않고도 할당 값을 검증하는 효과적인 방법입니다. 현대 자바 스크립트의 더 나은 기능 중 하나입니다. 저평가 된 getter/setter 속성을 반환하는 방법이 있다면 그것은 더 좋을 것입니다. 내가 놓친 방법이 있습니까 아니면 그냥 불가능한가요? 우리는 set(prop, value)
기능을 사용하여 붙어 있습니까?