先看看JAVA中继承的定义 :Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
那么直接用原型链会有什么问题?
//定义一个CarModel类 function CarModel(c){ this.color=c||"白色"; this.getColor=function(){ console.log(‘我的颜色是‘+this.color); } } //car类有自己的属性,比如品牌 function Car(brand){ this.brand=brand; this.getBrand=function(){ console.log(‘我的品牌是‘+this.brand); } } //car类需要继承自carmodel,汽车共有的属性color放在carmodel上 Car.prototype=new CarModel(); var car1=new Car("丰田"); console.log(car1);
以上就是直接利用原型链来继承的效果;现在的话颜色是默认的白色,如果子类要定义自己的颜色怎么做?
car1.color="蓝色";
验证这个问题:
1.原型上添加引用类型数据:数组
2.改变值
确实影响了原型对象
然后:操作基本数据类型的时候是不会影响原型的(比如你操作car1.color)你可以自己试试哈
原文:http://www.cnblogs.com/llauser/p/6718470.html