我最近开始学习 Javascript,并试图理解一些重要的概念。根据我目前的理解,Javascript 没有类,它使用构造函数而不是类来创建对象的蓝图。示例:
// javascript code
var Car = function() {
// this is a private variable
var speed = 10;
// these are public methods
this.accelerate = function(change) {
speed += change;
};
this.decelerate = function() {
speed -= 5;
};
this.getSpeed = function() {
return speed;
};
};
// typescript code
class Car {
public speed: number = 10;
public acceleration(accelerationNumber: number): void {
this.speed += accelerationNumber;
}
public decelerate(decelerateNumber: number): void {
this.speed += decelerateNumber;
}
public getSpeed(): number {
return this.speed;
}
}
上面的 Typescript 代码更有意义,因为我们有一个为该类对象创建蓝图的类。但是,在 Javascript 中,这个蓝图是通过一个函数创建的。那么这是否意味着 Javascript 中的构造函数与 Typescript/Java/等中的类所做的事情相同?
最佳答案
该 Typescript 类的正确等效项是:
var Car = function () {
this.speed = 10;
};
Car.prototype.accelerate = function (change) {
this.speed += change;
};
Car.prototype.decelerate = function () {
this.speed -= 5;
};
Car.prototype.getSpeed = function () {
return this.speed;
};
Car
函数,即构造函数,基本上就是 class
中的 constructor()
;这是初始化新实例时执行的操作。 prototype
上的所有函数都是在所有实例共享的类中定义的其他方法。
关于Javascript 构造函数与 Typescript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43759770/