JavaScript 类,对象

本文探讨了JavaScript中构造函数的三种使用方式及其潜在问题。首先介绍了简单的构造函数方法,指出其导致每个实例都有独立的方法副本的问题。接着讨论了混合构造函数与原型的方式,这种方法虽然解决了方法共享问题但存在类方法定义于外部的不足。最后提出了一种改进方案,通过在构造函数内部初始化原型方法来优化代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]1. 构造函数方式[/b]
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;

this.showColor = function() {
alert(this.color);
};
}

Problem: 这种方式会导致每个对象都有自己的 showColor() .

[b]2. 混合的构造函数/原型方式[/b]
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
}

Car.prototype.showColor = function() {
alert(this.color);
};
Problem: 把方法定义在类外部

[b]3. 改进版:将方法封装到类定义里面:[/b]
function Car(sColor,iDoors,iMpg) {
//Define Properties
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");

//Define Methods
if (Car._initialized) return;
Car._initialized = true;

Car.prototype.showColor = function() {
prt(this.color);
};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值