// 非构造函数的继承(深度拷贝)
var Chinese = {
nation:'中国'
};
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 Doctor = deepCopy(Chinese);
//现在,给父对象加一个属性,值为数组。然后,在子对象上修改这个属性
Chinese.birthPlaces = ['北京','上海','香港'];
Doctor.birthPlaces.push('厦门');
//这时,父对象就不会受到影响了
console.log(Doctor.birthPlaces); //北京, 上海, 香港, 厦门
console.log(Chinese.birthPlaces); //北京, 上海, 香港
//目前,jQuery库使用的就是这种继承方法