이 ("모든 경우에"샘플의 단지 사본 테스트를하지 않은 경우) 샘플 코드를 제공 작동합니다
: 그 중 첫 번째
function propsExist(obj) {
if (!obj) return false;
for (var i = 1; i < arguments.length; i++) {
if (!obj[arguments[i]]) return false;
obj = obj[arguments[i]];
}
return true;
}
if (propsExist(obj, "prop", "subProp1", "subPropFunc")) {
obj.prop.subProp1.subPropFunc();
}
가변 인자를받는 propsExist()
방법을, 속성/기능을 확인하려는 원본 개체입니다. 그것은 당신이 그것을 보내고 그것을 순서대로 검사하는 속성 목록을 반복합니다. 존재하지 않으면 false
을 반환합니다. 그것은 전체 루프를 통해 그것을 만드는 경우, 그것은 성공적으로 검증! 당신이 항상 그것의 유효성을 확인하면 하위 속성의 함수를 호출 할 경우
, 당신은 또한 단지 대신 진정한 반환하는 호출하는 propsExist
기능을 변경할 수 있습니다 (다음 callIfValid(obj, ...)