/**
* Object.defineProperty 그러나 "게으른" 값은 이후에만 값이 설정됨을 의미합니다.
* 바로 설정되지 않고 처음으로 검색됩니다.
*
* @param {Object} obj 속성을 설정할 객체
* @param {string} key 설정할 속성의 키
* @param {Function} getValue 필요할 때 값을 가져오는 데 사용되는 함수입니다.
* @param {boolean} setter는 setter가 허용되어야 하는지 여부를 결정합니다.
*/
const defineLazyProperty = function(obj, key, getValue, setter = true) {
상수 집합 = (값) =>
Object.defineProperty(obj, 키, {값, 열거 가능: 참, 쓰기 가능: 참});
const 옵션 = {
구성 가능: 참,
열거 가능: 참,
얻다() {
const 값 = getValue();
설정(값);
반환 값;
}
};
if (세터) {
options.set = 설정;
}
Object.defineProperty(obj, 키, 옵션)를 반환합니다.
};
기본 defineLazyProperty 내보내기;