0
아래는 자바 스크립트의 확장 기능입니다. jQuery에서 $ .extend()와 동일합니다. JavaScript 객체를 업데이트/수정하는 데 사용됩니다.자바 스크립트의 확장 함수 사용
var extend= function() {
var options,
name,
src,
copy,
copyIsArray,
clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
if (typeof target === "boolean") {
deep = target;
target = arguments[1] || {};
i = 2;
}
if (typeof target !== "object" && !isFunction(target)) {
target = {};
}
if (length === i) {
target = this;
--i;
}
for (; i < length; i++) {
if ((options = arguments[i]) != null) {
for (name in options) {
src = target[name];
copy = options[name];
if (target === copy) {
continue;
}
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
if (copyIsArray) {
copyIsArray = false;
clone = src && isArray(src) ? src: [];
} else {
clone = src && isPlainObject(src) ? src: {};
}
target[name] = extend(deep, clone, copy);
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
는 그것은 다음과 같이 호출됩니다
extend(curConfig, newConfig);
는 새와 객체를 수정하는 모든 곳에서 사용되는 표준 기능이므로. 이 기능을 이해하고 분석하고 싶습니다.
- 함수 정의에 전달할 수있는 매개 변수가 없으므로 사용하는 동안 매개 변수가 여러 개 필요합니다. 그렇다면이 함수는 어떻게 작동합니까?
- 이 기능의 다른 용도는 무엇입니까? 그것을 호출하는 방법은 무엇입니까?
- 5 개의 개체 매개 변수가 함수에 전달되면 First param은 대상이되고 나머지는 원본이됩니다. 권리 ? 오브젝트가 없으면 오브젝트가 대체 또는 복사됩니까?
누구든지 예제 (또는 jsfiddle 데모로 가능한 경우)로 설명 할 수 있습니까?
미리 감사드립니다.
+1. 쿠엔틴 감사합니다. "확장 할 개체를 전달하고 개체를 확장하려면 개체 수를 정교하게 지정할 수 있습니까? pls. 내 질문보기 3 –