网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

总结各种奇葩原型继承,面试向-创新互联

1. 原型链继承总结各种奇葩原型继承,面试向

function Brother(name){

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联提供从前期的网站品牌分析策划、网站设计、成都网站制作、成都网站建设、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。

this.name = name;

this.wives = ["奶茶"];

this.marry = function(){};

}

function Employee(name) {

this.name = name;

}

Employee.prototype = new Brother();

优点:书写简单

缺点: 无法给父类构造函数传参,子类会继承父类的所有引用类型,一旦原地修改就会影响所有子类。

const brother = new Brother("刘强东");

const employee1 = new Employee("刘强东的兄弟");

const employee2 = new Employee("刘强东的兄弟2");

console.log(employee1.wives); // 奶茶

console.log(employee2.wives); // 奶茶

employee1.wives.push("绿茶");

console.log(employee1.wives); // 奶茶,绿茶

console.log(employee2.wives); // 奶茶,绿茶

employee1.wives = ["绿茶"]; // 指向不同对象

console.log(employee1.wives); // 绿茶

console.log(employee2.wives); // 奶茶,绿茶

2.借用构造函数

function Brother(name){

this.name = name;

this.wives = ["奶茶"];

   this.marry = function(){};

}

function Employee(name, age) {

Brother.call(this, name);

this.age = age;

}

缺点:父类方法内的函数每次都会生成新的拷贝;通过prototype定义的方法无法继承

3. 组合继承 (原型链 + 借用构造函数)

function Brother(name){

this.name = name;

this.wives = ["奶茶"];

}

Brother.prototype.marry = function() {}

function Employee(name, age) {

Brother.call(this, name);

this.age = age;

}

Employee.prototype = new Brother();

缺点: 多次调用构造函数

4.原型式继承 duck type 鸭式辨型

function object(o) {

function F(){}

F.prototype = o;

return new F();

}

或者直接object.create(o);

使用场合:没必要构建构造函数,仅仅是想模拟一个对象的时候

缺点:同原型链

5.寄生继承

function(original){

 newObj = Object(original)

 newObj.newFunc =(){}

 return newObj

}

缺点:方法在函数中定义,无法得到复用

6.寄生组合

function inheritPrototype(subType, supType) {

var p = Object(supType.prototype);

p.constructor = subType;

subType.prototype = p;

}

function subType(){

supType.call(this);

}

inheritProptype(subType, supType)


网站题目:总结各种奇葩原型继承,面试向-创新互联
文章出自:http://bjjierui.cn/article/djdhpo.html

其他资讯