我在这个页面上查看了 TypeScript 生成的 JS 代码:
http://www.typescriptlang.org/Playground/
基本上,要创建一个 Greeter
类,它会输出以下内容:
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;
})();
var greeter = new Greeter("world");
所以我想知道他们为什么要混合模块和原型(prototype)模式?难道不是一样的只是做:
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
}
var greeter = new Greeter("world");
?
最佳答案
这里使用模块模式是为了创建一个闭包,允许更多地控制任何关闭的变量(没有泄漏到全局,没有全局污染),并允许创建“私有(private)”变量(仅通过模块存在的变量)模式的关闭)。
关于javascript - 为什么 TypeScript 混合了模块和原型(prototype)模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14312955/