객체의 속성을 사용하여 변수를 해제하는 더 짧은 방법을 찾으려고합니다. 객체 속성을 사용하여 for 루프에서 변수 선언하기
내가
이 같은 매개 변수로 전달 된 "userOptions"개체를 가지고 : myFunction이에서var example = new myFunction({
maxLimit: 30,
});
내가 가진 내가 변수로 옵션을 선언하는 userOptions 비교 "defaultOptions"라는 다른 객체입니다. 다음 예제는 이미 충분히 짧게 보일 수 있습니다. 그러나 옵션 수가 증가하면 비효율적이기 시작합니다.
function myFunction(userOptions) {
var defaultOptions = {
maxLimit: 20,
minLimit: 10
}
// Apply user options
for (var i in defaultOptions) {
if (userOptions.hasOwnProperty(i)) {
defaultOptions[i] = userOptions[i];
}
}
// Declare variables
var maxLimit = defaultOptions.maxLimit;
var minLimit = defaultOptions.minLimit;
}
This question는 내가 뭘하려고 오전에 조금 비슷하다. 그러나 대답은 내가 이미했던 것처럼 객체 속성에 하나씩 접근하는 것을 제안합니다.
이 작업을 수행하는 더 좋은 방법이 있습니까? for 루프에서 변수를 선언하거나 업데이트 된 옵션 객체의 속성을 변수로 추출하는 것과 마찬가지로? 당신이 Object.assign
찾고있는 것처럼
그것은 당신이 달성하기 위해 노력하고 무엇을 조금 불분명합니다. 원하는 값을 가진이'defaultOptions' 객체를 가지고 있다면 왜 그 객체를 통해 접근할까요? I.E., 어디에서든지'maxLimit'에 접근하고 있다면,'defaultOptions.maxLimit' 만 써라. (대괄호 문법을 사용할 필요가 없다.) –
그게 바로 대부분의 라이브러리 (예 : jQuery 및 jQuery UI)입니다. 아마 편의를 위해 자주 사용되는 몇 가지 옵션을 제외하고. – Barmar
'defaultOptions'와 같이 긴 이름을 계속 입력하지 않으려면'var do = defaultOptions;'와 같은 짧은 이름을 지정할 수 있습니다. 그럼 그냥 do.maxLimit입니다. – Barmar