Javascript 我真的很喜欢ruby允许的方式;isACar?“;方法名,但如何在js中实现?
我知道一种方法,但不实用:Javascript 我真的很喜欢ruby允许的方式;isACar?“;方法名,但如何在js中实现?,javascript,Javascript,我知道一种方法,但不实用: var a = {'isACar?': function(){}} a['isACar?']() 我想要这样的 a.isACar?() 感谢在JavaScript中使用点表示法无法访问名称中带有问号的属性,它将启动一个三元运算符。在JavaScript中使用点表示法无法访问名称中带有问号的属性,它将启动一个三元运算符。这无法完成。。。索塔。问题在于,在javascript中,问号用于内联if。也就是说,如果你正在用一个真实的东西做一些事情,你可能会在某种测试中使用
var a = {'isACar?': function(){}}
a['isACar?']()
我想要这样的
a.isACar?()
感谢在JavaScript中使用点表示法无法访问名称中带有问号的属性,它将启动一个三元运算符。在JavaScript中使用点表示法无法访问名称中带有问号的属性,它将启动一个三元运算符。这无法完成。。。索塔。问题在于,在javascript中,问号用于内联if。也就是说,如果你正在用一个真实的东西做一些事情,你可能会在某种测试中使用它,所以内联if可能对你有用。例如:
var c = {};
c.isACar = function(){dosomethinghere};
var d = c.isACar()? 5 : 23;
如果c是汽车,则将d设置为5,否则将设置为23。这无法完成。。。索塔。问题在于,在javascript中,问号用于内联if。也就是说,如果你正在用一个真实的东西做一些事情,你可能会在某种测试中使用它,所以内联if可能对你有用。例如:
var c = {};
c.isACar = function(){dosomethinghere};
var d = c.isACar()? 5 : 23;
如果c是汽车,则将d设置为5,否则设置为23。您不能用javascript执行此操作。
?
字符将被解释为运算符
标识符必须以$、\或Unicode类别“大写字母(Lu)”、“小写字母(Ll)”、“标题字母(Lt)”、“修饰字母(Lm)”、“其他字母(Lo)”或“字母编号(Nl)”中的任何字符开头
字符串的其余部分可以包含相同的字符,加上任何U+200C零宽度非连接字符、U+200D零宽度连接字符以及Unicode类别中的字符“非间距标记(Mn)”、“间距组合标记(Mc)”、“十进制数字(Nd)”或“连接器标点(Pc)”
从
但好的一面是,变量可能有这样的恶名:
var ಠ_ಠ = eval;
// or
var π = Math.PI;
您不能在javascript中执行此操作。
?
字符将被解释为运算符
标识符必须以$、\或Unicode类别“大写字母(Lu)”、“小写字母(Ll)”、“标题字母(Lt)”、“修饰字母(Lm)”、“其他字母(Lo)”或“字母编号(Nl)”中的任何字符开头
字符串的其余部分可以包含相同的字符,加上任何U+200C零宽度非连接字符、U+200D零宽度连接字符以及Unicode类别中的字符“非间距标记(Mn)”、“间距组合标记(Mc)”、“十进制数字(Nd)”或“连接器标点(Pc)”
从
但好的一面是,变量可能有这样的恶名:
var ಠ_ಠ = eval;
// or
var π = Math.PI;
你为什么要这么做?为什么?如果这是一个语法上的甜点,那还是很奇怪的,但它甚至比这个还小——它只是函数显示方式的一个小变化。我看到这个问题的最初想法是“哇,编程语言允许你使用?在标识符中,ew!”@JamesThorpe:它实际上只允许你使用?在方法上。不是变量。我不知道为什么。不过也没那么奇怪。大多数LISP变体都允许标识符中除了空格、括号和其他一些内容之外的任何内容。@olleicua感谢您提供的信息。我需要找时间调查一些我不熟悉的语言,至少这样我知道它们什么时候可能有用……你为什么要这样做?为什么?如果这是一个语法上的甜点,那还是很奇怪的,但它甚至比这个还小——它只是函数显示方式的一个小变化。我看到这个问题的最初想法是“哇,编程语言允许你使用?在标识符中,ew!”@JamesThorpe:它实际上只允许你使用?在方法上。不是变量。我不知道为什么。不过也没那么奇怪。大多数LISP变体都允许标识符中除了空格、括号和其他一些内容之外的任何内容。@olleicua感谢您提供的信息。我需要找时间研究一些我不熟悉的语言,至少这样我知道它们什么时候可能有用……你可以选择一个任意的unicode字符来代表?,例如:函数isCoolʃ(){return true;}你可以选择一个任意的unicode字符来代表?,例如:函数isCoolʃ(){return true;}