我遇到了一些看起来像这样的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>
答案 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)