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 添加方法,但直接添加到原型会更高效。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



