javascript 对象的继承

来源:互联网 发布:注册英语培训学校 知乎 编辑:程序博客网 时间:2024/05/14 20:29

1.原型继承
prototype优势:使用prototype放置公用的变量和函数。当在new一些新的对象时减少了那一块代码的重复创建(开辟内存空间)。

原型继承如下:

function SuperType() {    this.property = true;}SuperType.prototype.getSuperValue = function() {    return this.property;}function subType() {    this.property = false;}//将SubType的prototype属性指向SuperType(父类),从而继承了SuperTypeSubType.prototype = new SuperType();SubType.prototype.getSubValue = function (){    return this.property;}var instance = new SubType();console.log(instance.getSuperValue());//true

2.使用call方法

语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: call 方法可以用来代替另一个对象调用一个方法。call
方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global
对象被用作 thisObj。

call继承如下:

function SuperType() {    this.colors = ["red","blue","green"];}function SubType() {    SuperType.call(this);//可以调用SuperType里面的任何属性和方法。从而继承了SuperType}var instance1 = new SubType();instance1.colors.push("black");console.log(instance1.colors);//"red","blue","green","black"var instance2 = new SubType();console.log(instance2.colors);//"red","blue","green"
原创粉丝点击