15、JavaScript 类与原型、访问器和生成器的深度解析

JavaScript 类与原型、访问器和生成器的深度解析

1. 用类扩展现有原型

在 JavaScript 中,类和原型有着紧密的联系。理解它们之间的关系,有助于我们更好地将新的类语法与现有代码集成。

1.1 JavaScript 类与传统面向对象语言的区别

传统面向对象语言(如 Ruby)中,类是对象的蓝图,创建新实例时会复制所有属性和方法到新对象。而 JavaScript 是原型语言,创建新实例时不会复制方法,而是创建一个指向原型的链接。当调用对象实例的方法时,实际上是从原型中调用,原型本身也是一个对象实例,并非蓝图。

1.2 构造函数创建对象实例

在 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

使用构造函数创建对象实例时,虽然可以绑定 this 上下文,但

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值