利用原型添加方法和属性

我们已经了解了如何定义构造器函数,并用来新建(构造)对象。这种做法的主要意图是通过new操作符来调用函数,以达到访问对象this指的目的,然后,构造器就可以将其所创建的对象返回给我们。这样我们就有了一种赋予新建对象一定功能(即为其添加属性和方法)的方法。

下面,让我们通过一个具体的构造器函数Gadget(),来看看它是如何在新建对象时添加属性和方法的

function Gadget(name,color){
    this.name = name;
    this.color = color;
    this.whatAreYou = function(){
        return 'I am a' + this.color + '' + this.name;
    }
}

添加属性和方法还有另一种方式,即通过构造器函数的prototype属性来增加该构造器所能提供的功能。现在就让我们来为上面的构造器增加两个属性(即price和rating)和另一个方法(即getInfo())。由于prototype属性包含的是一个对象,所以我们可以这样:

Gadget.prototype.price = 100;
Gadget.prototype.rating = 3;
Gadget.prototype.getInfo = function(){
    return 'Rating: ' + this.rating + ', price: ' + this.price;
};

如果不想将他们逐一添加到原型对象中去,也可以另外定义一个对象,然后将其覆盖到之前的原型上:

Gadget.prototype = {
    price:100,
    rating:3,
    getInfo:function(){
        return 'Rating: ' + this.rating + ', price: ' + this.price;
    }
};

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值