ホームページ  >  記事  >  ウェブフロントエンド  >  ネイティブ js は、jquery_javascript スキルの extend() メソッドと同様に、オブジェクトのコピーとオブジェクトの拡張を実現します。

ネイティブ js は、jquery_javascript スキルの extend() メソッドと同様に、オブジェクトのコピーとオブジェクトの拡張を実現します。

WBOY
WBOYオリジナル
2016-05-16 16:38:271177ブラウズ

jq の extend() メソッドは、拡張オブジェクト メソッドを簡単に実装できます。構文は次のとおりです: $.extend(obj1,boj2,obj3);

ここで実装する必要があるのは次のとおりです。ネイティブ js は、jq の extend() メソッドと同様に、オブジェクトのコピーとオブジェクトの拡張を実装します。具体的な例は次のとおりです。 現在、オブジェクト リテラルは 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 までご連絡ください。