非构造函数的继承 深拷贝

来源:互联网 发布:python beaker 编辑:程序博客网 时间:2024/05/01 03:23
 $(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:'医生',          }

0 0
原创粉丝点击