gpt4 book ai didi

JavaScript 对象文字不起作用

转载 作者:行者123 更新时间:2023-11-30 20:37:21 25 4
gpt4 key购买 nike

这是 JavaScript object literals 中的错误吗? ,至少是解析器?

////////// a bug in JavaScript? //////////

// works:
const pointless = {
"a b": 1,
"c": 2
};

// works:
({
"a b": 1,
"c": 2
});

// fails when uncommented:
// {
// "a b": 1,
// "c": 2
// };

////////// what lead to the above //////////

// works:
class Thing {
static get table() {
return {
'x': function () { console.log('You chose x!') },
'y': function () { console.log('You chose y!') }
};
}

static doAllTheThings(arg) {
this.table[arg]();
}
}

Thing.doAllTheThings('x');

// works:
function doAllTheThings(arg) {
({
'x': function () { console.log('You chose x!') },
'y': function () { console.log('You chose y!') }
})[arg]();
}

doAllTheThings('y');

// fails when uncommented:
// function doAllTheThings(arg) {
// {
// 'x': function () { console.log('You chose x!') },
// 'y': function () { console.log('You chose y!') }
// }[arg]();
// }

// doAllTheThings('y');

现场演示:https://repl.it/repls/DeadlyFatherlyVertex

我偶然发现了这个试图制作一个跳转表而不是使用巨大的切换命令。将 {} 包装在 () 中是可行的,但恕我直言,这不是必需的。

它以这种方式工作有什么原因吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com