2017-03-07 1 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

をありがとう、あなたは関数自体を参照しています。あなたが()を置くと、あなたは実際に関数を呼び出して結果を返します(もしあれば)。だから、そこに関数の名前を置くことによって、オブジェクトを使用して、補間属性を参照することによって、その関数を評価することができます。たとえば、this postを参照してください。

関連する問題