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>