我真的喜欢允许"isACar"的红宝石方式吗?方法名称,但如何在js中执行?

Tot*_*.js 1 javascript

我知道一种方法,但不实用:

var a = {'isACar?': function(){}}
a['isACar?']()
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西

a.isACar?()
Run Code Online (Sandbox Code Playgroud)

谢谢

Que*_*tin 5

无法使用JavaScript中的点符号访问名称中带有问号的属性,它会启动三元运算符.


Ale*_*der 5

不能在javascript中这样做.该?字符将被解释为三元运算符.

标识符必须以$,_或Unicode类别中的任何字符开头"大写字母(Lu)","小写字母(Ll)","标题字母(Lt)","修饰符字母(Lm)","其他"字母(Lo)",或"字母编号(Nl)".

字符串的其余部分可以包含相同的字符,加上任何U + 200C零宽度非连接字符,U + 200D零宽度连接字符和Unicode类别中的字符"非间距标记(Mn)","间距组合mark(Mc)","十进制数字编号(Nd)"或"连接符标点符号(Pc)".

来自有效的JavaScript变量名称

但从好的方面来说,你可以为你的变量设置邪恶的名字,如下所示:

var ?_? = eval;
// or
var ? = Math.PI;
Run Code Online (Sandbox Code Playgroud)

  • 您可以选择任意unicode字符代表?,例如ʃ:functionisCoolʃ(){return true; } (2认同)