4

我正在查看此页面上由 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");

?

4

1 回答 1

7

这里使用模块模式是创建一个闭包,允许对任何封闭的变量进行更多控制(没有泄漏到全局,没有全局污染),并允许创建“私有”变量(仅通过模块存在的变量模式的关闭)。

于 2013-01-14T03:37:47.207 回答