您的位置:首页 > Web前端 > JavaScript

Javascript—类和继承

2016-07-18 18:51 375 查看
1、在Javascript中实现,使用最广泛、认同度最高的是 构造函数+原型 

构造函数:定义实例属性

原型:定义方法和共享的属性

function Person(name,age,job){

  this.name=name;

  this.age=age;

  this.job=job;

  this.friends = ["Lucy","Lily"];

}

Person.prototype = {

  constructor:Person,

  sayName:function(){

    alert(this.name);

  }

};

var p1= new Person("Amanda",23,"worker");

p1.friends.push("Zipper");

alert(p1.friends);

p1.sayName();

var p2= new Person("Banner",31,"worker");

alert(p2.friends);

p2.sayName();

2、Javascript中实现继承,方式一:组合继承-----分别继承 属性和方法

function SuperType(name){

  this.name = name;

  this.colors = ["red","blue"];

}

SuperType.prototype = {

  sayName: function(){

    alert(this.name);

  }

};

//继承属性

function SubType(name,age){

  SuperType.call(this,name);

  this.age = age;

}

//继承方法

SubType.prototype = new SuperType();

SubType.prototype.sayAge = function(){

  alert(this.age);

}

var sub = new SubType("Amanda",24);

sub.sayName();

sub.sayAge();

alert(sub.colors);

缺点是:无论什么情况下,子类都调用了两次父类的构造函数,一次是在创建子类原型的时候,一次是在子类型构造函数内部。优化方法:寄生组合式继承。

PS:现在还没看懂 寄生组合式继承。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: