浅析继承方式
浅析继承方式
LinearLaw 发表于1年前
浅析继承方式
  • 发表于 1年前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

最近发现有些概念都混淆了,重新回去查了下资料,做个记录。

1、原型继承

(1)、将对象指定为另一对象的原型,即可让该对象拥有另一对象的属性

不光光是属性,方法也可以使用。

    //创建构造函数
       function Person(){}

    //创建对象,并手动指定其constructor为Person
       var human = {
           constructor: Person,
           name: "jack",
           age: 18,
           gender: "male",
           say:function(){
                console.log("sayxxx")
           }
       };

    //指定构造函数Person的原型为human
       Person.prototype = human;

    //利用Person构造函数,创建实例化对象,该对象将会同时拥有Person和human的属性
       var p = new Person();
       console.log(p.name);
       console.log(p.say());

(2)、将对象的属性混入到原型中

       function Person(){}

       Person.prototype.extend = function (obj) {
           //本方法中的 this 指向的就是 Person.prototype
           for(var k in obj){
               this[k] = obj[k];
           }
       };
       var human = {
           name: "jack",
           age: 18,
           gender: "male"
       };

       Person.prototype.extend(human);

    //这里的extend相当于for-in语法
    //        for(var k in human){
    //            Person.prototype[k] = human[k];
    //        }

       var p = new Person();

2、经典继承

        Object.create()
        //这个方法有兼容性问题

        var obj = Object.create(obj1);
        //创建一个对象obj, 让obj1作为obj的原型

3、混入式继承(mix-in)

for(var k in obj1){
          obj[k] = obj1[k];        
}
标签: javascript
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 4
博文 28
码字总数 34603
×
LinearLaw
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: