js继承

看完别人写的博客,我也就过来自己写计一下。

在js中没有子类和父类的概念,全靠的都是原型链这个东西。

在js创建之初,他的作者Brendan Eich就说过,设计这个语言,不需要太复杂用来做表单的验证就行。

js是简明的脚本语言,就不能有继承的机制,但是js中都是对象,就必须有“继承”。最后Brendan Eich决定创建一个继承。

但是,他不打算引入类,因为引入类的概念以后,js就完全是面向对象的编程。

然会Brendan Eich就引用c++和java的new的操作,但是他并不打算引入类,所以在new的后面跟的是构造函数。

function  obj(name){

  this.name = name;

}

var  obj = new obj('dog');

console.log(obj);  //dog

但是这是我再new一个电子狗的时候,他们俩并不会相互印象。

var obj1 = new obj('e-dog');

console.log(obj1);  //e-dog

这就是new的一个缺点,实例并不能共享。

所以他又创建了一个方法,prototype。

这个方法用来解决构造函数不能实例共享的缺点。

obj1.prototype.name = "混合狗";

console.log(obj);  // 混合狗

console.log(obj1);  // 混合狗

这就是js的继承。

 

posted @ 2019-07-24 09:35  洗白白的佐助  阅读(177)  评论(0编辑  收藏  举报