Javascript Switch:您可以多次使用相同的大小写吗?

Den*_*lek 5 javascript switch-statement

我有一个基于元素“类型”的开关,它会触发不同的默认设置。

多个“类型”通常共享默认设置,例如,backgroundColor因此我们将它们组合成多个案例设置。在我们进行修改时,能够随心所欲地调整每个“类型”是一件很不错的事情,并且常常会导致很多重复,因为每种类型都放在自己的小盒子中。

我想做的是使用一个共享的案例,然后再次声明它的特殊属性。

就像是:

function setDefaults(base) {
    switch (base.type) {
            case 'rectangle':
            case 'circle':
            case 'areaMap':
            case 'clock':
            case 'news':
            case 'weather':
            case 'webview':
            case 'camera':
                base.properties.background = this._getRandColor();

            case 'areaMap':
                base.properties.height = '600px';
                base.properties.width = '800px';
                break;
        }
    return base;
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否行得通...

vol*_*ron 3

不,这不起作用。它似乎只起作用,因为你break在第一个案例之后丢失了一个。如果没有这个break,如果第二个案例被称为任何东西,它就会被执行。

例如,如果您调用第二种情况,case 'foo':它仍然会设置高度/宽度属性。由于前面的 case 语句中缺少中断,因此应用了高度和宽度。

以下附加来源分别归功于@machinegost 和@jorg: