>  기사  >  웹 프론트엔드  >  기본 js는 jquery_javascript 기술의 확장() 메서드와 유사하게 객체 복사 및 객체 확장을 실현합니다.

기본 js는 jquery_javascript 기술의 확장() 메서드와 유사하게 객체 복사 및 객체 확장을 실현합니다.

WBOY
WBOY원래의
2016-05-16 16:38:271177검색

jq의 extend() 메소드는 확장된 객체 메소드를 쉽게 구현할 수 있습니다. 구문은 다음과 같습니다: $.extend(obj1,boj2,obj3);

지금 구현해야 할 사항은 다음과 같습니다. 네이티브 js는 jq의 확장() 메서드와 유사하게 객체 복사 및 객체 확장을 구현합니다.
현재 3개의 객체 리터럴이 있습니다:

var o1={hello:1,old:555},
o2 = {
abc: 55555555,
hello: 2,
fun: function() {
alert(111);
}
},
o3={third:9999};

목표 달성:

o1 객체를 복사하고, o2와 o3의 객체 속성과 메소드를 이전에 복사한 객체로 확장하여 출력합니다.

<script>
var o1={hello:1,old:555},
o2 = {
abc: 55555555,
hello: 2,
fun: function() {
alert(111);
}
},
o3={third:9999};
function cloneObj(oldObj) { //复制对象方法
if (typeof(oldObj) != 'object') return oldObj;
if (oldObj == null) return oldObj;
var newObj = new Object();
for (var i in oldObj)
newObj[i] = cloneObj(oldObj[i]);
return newObj;
};
function extendObj() { //扩展对象
var args = arguments;
if (args.length < 2) return;
var temp = cloneObj(args[0]); //调用复制对象方法
for (var n = 1; n < args.length; n++) {
for (var i in args[n]) {
temp[i] = args[n][i];
}
}
return temp;
}
var t=extendObj(o1,o2,o3);
console.log(t);
console.log(o1);
console.log(o2);
console.log(o3);
</script>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.