继承,命名空间

继承发展史

1.传统形式-->原型链
过多的继承了没用的属性
2.借用构造函数
不能继承借用构造函数的原型
每次构造函数都要多走一个函数
3.共享原型
不能随便改动自己的原型
4.圣杯模式

/圣杯模式
function  inherit(Target,  Origin){
    function  F()  {};
    F.prototype  =  Origin.prototype;
    Target.prototype  =  new  F();
    Target.prototype.constructor  = Target;
    Target.prototype.uber  =  Origin.prototype;
}
Father.prototype.lastName  =  "Deng";
function Father ()  {
}
function Son () {
}
inherit(Son,  Father);
var  son  =  new  Son();
var  father  =  new  Father();

命名空间

管理变量,防止污染全局,适用于模块化开发

obj.name  -->  obj['name']
var deng = {
     wife1  :  {name  :“xiaoliu”},
     wife2  :  {name  :“xiaozhang”},
     wife3  :  {name  :“xiaomeng”},
     wife4  :  {name  :“xiaowang”},
     sayWife  :  function (num) {
          return  this ['wife'+num];/this.wifenum
     }
}

你可能感兴趣的:(继承,命名空间)