js面向对象继承非结构化

来源:互联网 发布:淘宝盗图申诉原图制作 编辑:程序博客网 时间:2024/06/03 23:04
/**
 * 非结构化继承
 */
var Chinese = {
    nation:'中国'
  };

var Doctor ={
    career:'医生'
  }

function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
  }

var Doctor = object(Chinese);
Doctor.career = '医生';
alert(Doctor.nation);

/**
 * 深拷贝方法
 */
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;
  }
Chinese.birthPlaces = ['北京','上海','香港'];
var Doctor = deepCopy(Chinese);
Doctor.birthPlaces.push('厦门');
alert(Doctor.birthPlaces); //北京, 上海, 香港, 厦门
alert(Chinese.birthPlaces);
原创粉丝点击