这是什么类型的怪物?

时间:2014-07-27 23:36:13

标签: javascript

我遇到了一些看起来像这样的javascript,我想知道是什么。它的功能类似于在变量声明中定义和实例化的单例类。我怎么称呼这种建筑?

<script>
    var abacus=
    {
        runningSum:0
        ,addSum:function(i){
            this.runningSum += i;
            return this.runningSum;
        }
        ,subtractSum:function(i){
            this.runningSum -= i;
            return this.runningSum;
        }
    }
    console.log(abacus.addSum(3));
    console.log(abacus.subtractSum(2));
</script>

3 个答案:

答案 0 :(得分:5)

它只是一个对象文字,它是定义“单身人士”的完美合理方式。我不认为它有一个特殊的名称。

唯一奇怪的是缩进 - 大多数人会更喜欢这样写:

var abacus = {
    runningSum: 0,
    addSum: function(i){
        this.runningSum += i;
        return this.runningSum;
    },
    subtractSum: function(i){
        this.runningSum -= i;
        return this.runningSum;
    }
};

答案 1 :(得分:2)

它不是怪物。它是一个分配给变量abacus的匿名对象构造函数(literal)。它有三个属性:runningSum,addSum和subtractSum。 addSum和subtractSum分配匿名函数。

答案 2 :(得分:1)