2016-03-15 40 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是的,但'一個函數'不是一個有效的變量名稱。 –