15、JavaScript 类的高级应用:原型扩展、访问器与生成器

JavaScript 类的高级应用:原型扩展、访问器与生成器

1. 用类扩展现有原型

在 JavaScript 里,类和原型并非截然不同,类只是编写常规 JavaScript 的一种简洁方式。传统面向对象语言(如 Ruby)中,类是对象的蓝图,创建新实例时会复制所有属性和方法到新对象。而 JavaScript 是原型语言,创建新实例时不会复制方法,而是创建一个指向原型的链接,调用对象实例上的方法时,实际上是从原型调用,原型本身也是一个对象实例。

1.1 构造函数创建对象实例

在 ES5 之前的 JavaScript 中,使用 new 关键字创建新对象实例时会用到构造函数。构造函数与类的构造方法很相似,这表明新的类语法能很好地与旧代码集成。

以下是使用构造函数创建 Coupon 对象的示例:

function Coupon(price, expiration) {
    this.price = price;
    this.expiration = expiration || 'two weeks';
}
const coupon = new Coupon(5, 'two months');
console.log(coupon.price); // 5

不过,使用构造函数创建对象时会丢失所有方法,这是 JavaScript 与传统面向对象语言的不同之处。可以在构造函数中为 this 添加方法,但直接添加到原型会更高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值