2016-03-15 42 views
1

例如工作,给出:不JS括号标记的功能invokations在所有浏览器

var object = { 
    ["a function"]: function() { 
    console.trace("that"); 
    } 
} 

是否有它们的任何浏览器知道何时错误:

object["a function"](); 

调用???

+0

这是非常标准。我不知道你的浏览器多大年纪才不会意识到它。 – durbnpoisn

+1

属性访问与函数调用完全无关。无论在什么之前,'()'都是无关紧要的,因为它解析为一个函数。我怀疑有一个浏览器无法解析这个问题。 –

回答

4

它应该在每个浏览器上没有任何括号的对象文字中工作。

var object = { 
 
    "a function": function() { 
 
     document.write("that"); 
 
    } 
 
} 
 

 
object["a function"]();

+1

与ES6计算的属性名称不同吗? – Quantastical

+0

我会很惊讶,但如果没有至少有一个版本的IE浏览器不起作用。 – Siguza

+0

@Quantastical是的,但'一个函数'不是一个有效的变量名称。 –