原型扩展

有两种方式可以扩展原型,不管哪种方式都会对原型所在的原型链产生影响。

(1)属性扩展

对构造函数的原型进行属性扩展后,扩展结果对继承此原型的对象都有效。

通常,用在扩展ECMAScript对象的功能,例如ECMAScript中的字符串类型,都没有trim()(去掉字符串中的空格)方法,而通过原型的扩展功能,就可以给ECMAScript中的字符串都扩展此功能,例如:

String.prototype.trim=function(){
    //逻辑处理
}

然后就可以像这样使用:

" a b   ".trim();

(2)对象赋值

当用户进行自定义类的扩展时,最直接、最简单的方法就是直接对构造函数的原型进行赋值,例如:

String.prototype=Object.prototype;

这样,String类就完全继承了Object类中的所有属性,但很遗憾,这个例子无法运行,因为所有的内置对象的prototype属性都有只读属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值