2017-03-07 57 views
0

這是代碼的()中省略分配給「內插」的功能後爲什麼https://bl.ocks.org/mbostock/3014589添加函數作爲對象屬性時,爲什麼()被省略?

一個部分?與()有什麼不同?

謝謝

var spaces = [ 
    {name: "HSL", interpolate: d3.interpolateHsl}, 
    {name: "HCL", interpolate: d3.interpolateHcl}, 
    {name: "Lab", interpolate: d3.interpolateLab}, 
    {name: "RGB", interpolate: d3.interpolateRgb} 
]; 
+0

你想分配功能嗎?或者調用函數的輸出? – 4castle

+0

你的意思是這樣的:'{interpolate:(d3.interpolateHsl)}'? – slebetman

回答

3

如果沒有括號,你引用函數本身。如果你把()的,你實際上調用函數並返回結果(如果有的話)。因此,通過將函數的名稱放在那裏,無論使用什麼對象和引用,interpolate屬性都可以評估該函數。例如,請參閱this post

相關問題