나는 끊임없이이처럼 액세스하는 기능에 대한 설정 값을 통과하는 자신을 찾을 방법 :기본 값으로, 객체에서 값을 얻으려면
var url = '<some-url>?id='+arg1+'&='+arg2 +'=' + arg3;
않습니다
var arg1 = 'test1';
if(isUndefined(config.args.arg1)){
arg1 = config.args.arg1;
}
var arg2 = 'param2';
if(isUndefined(config.args.arg2)){
arg2 = config.args.arg2;
}
var arg3 = '123';
if(isUndefined(config.args.arg3)){
arg3 = config.args.arg3;
}
어디 나중에 같이 사용할 jQuery/ExtJS 또는 다른 프레임 워크는 이와 같은 변수에 간단한 방법으로 액세스하고 변수에 기본값을 제공하는 솔루션을 제공합니까? 같은
뭔가 :
getValueOfObject(config,'args.arg3','<default>');
또는 어쩌면 이것에 대한 표준 용액이있다.
참고 :
나는 또한 일반적인 패턴에 대해 생각했다 당신이이 기본값
var defaults = {
args: {
args1: ....
}
...
}
및 오브젝트 병합을하고.
그런 다음 개체를 param String으로 인코딩합니다. 그러나 당신이 볼 수 있듯이 값에는 때때로 매개 변수 이름이 포함되어 있습니다. 그래서
var foo = couldBeUndefined || "some default";
: 일부 변수가 falsy을 평가할 때
일반적으로
나는'config.args.arg1'가 정의되지 않은 경우이 확인 될 것입니다 생각하지만, 늘이 config.args'이 정의 자체가''경우 config' 또는 실패? –
아니요, 정의되지 않음은 falsy로 평가되므로이 시나리오에서는 조건의 두 번째 부분이'foo'에 할당됩니다. – karim79
@ karim79 그는'config.args === undefined' 인 경우'config.args.arg1'을 던질 것을 암시합니다. – Raynos