博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅析继承方式
阅读量:6884 次
发布时间:2019-06-27

本文共 1290 字,大约阅读时间需要 4 分钟。

hot3.png

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

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];        }

转载于:https://my.oschina.net/LinearLawX/blog/886335

你可能感兴趣的文章