$(document).ready(initPage);
function initPage() {
Doctor = deepCopy(Chinese);
var list = Doctor.birthPlaces;
var arrayList = new Array();
for(var i=0;i<list.length;i++){
// Doctor.birthPlaces.push(Doctor.birthPlaces[i]);
//alert(list[i]);
arrayList.push(list[i]);
}
Doctor.birthPlaces = arrayList;//引用类型
Doctor.birthPlaces.push("厦门");
alert(arrayList); //北京, 上海, 香港, 厦门
alert(Doctor.birthPlaces); //北京, 上海, 香港, 厦门
alert(Chinese.birthPlaces); //北京, 上海, 香港
}
//所谓"深拷贝",就是能够实现真正意义上的数组和对象的拷贝。它的实现并不难,只要递归调用"浅拷贝"就行了。
function deepCopy(p, c) {
var c = c || {};
for (var i in p) {
if (typeof p[i] === 'object') {
c[i] = (p[i].constructor === Array) ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
return c;
}
var Chinese = {
nation:'中国',
birthPlaces:['北京','上海','香港']
};
var Doctor ={
career:'医生',
}
非构造函数的继承 深拷贝
最新推荐文章于 2018-08-27 11:16:02 发布