js实现继承的几种方法

js实习继承的几种方法:

1. for-in继承:

function Person(){ //父类

this.name="水煮鱼";

this.age=18;

}


function Son(){ //子类

}

var p=new Person();

var s=new Son();

for(var k in p){

s[k]=p[k];

}

console.log(s.name); //水煮鱼

console.log(s.age); //18


2.原型继承:

function Human(){

this.name="香辣虾";

this.age=21;

}

function Man(){

}

Man.prototype=new Human();

var m=new Man();

console.log(m.name); //香辣虾

console.log(m.age); //21
 
console.log(m); //Human {}


3.经典继承:(Object.create())

var animal={

name:"Tom",

type:"猫科"

};

var a=Object.create(animal) //ES5属性

console.log(a.name); //阿咪

console.log(a.type); //猫科

console.log(a);//{}


Object.create()是让一个对象的原型继承另外一个对象;所以虽然a.name和a.age是可以访问成功的,但实际上a本身并没有这些属性,而是a的原型上有这些属性。

猜你喜欢

转载自blog.csdn.net/weixin_30363263/article/details/81453890