【发布时间】:2016-08-09 09:40:11
【问题描述】:
TypeScript 为什么不封装私有变量?
给定以下 TypeScript:
private engine: string;
constructor(engine: string) {
this.engine = engine;
}
start() {
console.log('Starting engine ' + this.engine);
}
}
var car = new Car("Fiat");
car.start();
当我编译时,我得到以下 JavaScript:
var Car = (function () {
function Car(engine) {
this.engine = engine;
}
Car.prototype.start = function () {
console.log('Starting engine ' + this.engine);
};
return Car;
}());
var car = new Car("Fiat");
car.start();
engine 变量是公开的。为什么 TypeScript 不产生类似的东西:
var Car = (function () {
var _engine;
function Car(engine) {
_engine = engine;
}
Car.prototype.start = function () {
console.log('Starting engine ' + _engine);
};
return Car;
}());
【问题讨论】:
标签: javascript typescript