javascript自调用闭包的替代用法

时间:2014-10-16 20:54:40

标签: javascript

我需要一种方法来重写我写过的javascript变量。

这就是我所拥有的:

var TEST = new function() {
     var a = 'a';
     var b = 'b';
     this.c = 'c';
     this.getC = function() {
         return this.c;
    }
};

我对函数前面的new关键字不太满意(甚至jslint / jshint也不太喜欢)。

我不想要key:value对符号,这可以通过以下代码实现:

var TEST = function() {
    return {
        a : 'a',
        b : 'b',
        c : 'c',
        getC : function() {
            return this.c;
        }
    }
}();

请提供更好的方法,除了关键:值对符号。

小提琴link描述了上述问题。

2 个答案:

答案 0 :(得分:1)

把它变成一个类:

function Thing(){
    this.a="a";
    this.b="b";
    this.c="c";
}
Thing.prototype.getC=function(){return this.c;}

(new Thing()).getC(); //"c"

答案 1 :(得分:1)

http://jsfiddle.net/dizel3d/u1w6m9tb/3/ JSHint有效。

var TEST = (function() {
    function Test() {
        var a = 'a';
        var b = 'b';
        this.c = 'c';
        this.getC = function() {
            return this.c;
        };
    }
    return new Test();
})();