我正在查看此页面上由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");
所以我想知道他们为什么要混合模块和原型模式?这样做不是一样的:
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
}
var greeter = new Greeter("world");
答案 0 :(得分:7)
这里使用模块模式是为了创建一个闭包,允许更多地控制任何已关闭的变量(没有泄漏到全局,没有全局污染),并允许创建'私有'变量(仅存在的变量)通过模块模式的闭包)。