2016-11-08 16 views
0

こんにちは、 この宣言についてお聞きしたいと思います。 "startNode.a(d)"という部分は本当に頭を痛めます。どういう意味ですか?変数 "a"の値 "startNode"は、変数 "a"を再度呼び出しますか?この宣言についてよくわからない

ありがとうございます!トムはコード全体を求めていたので、

H

私は、これを編集します。「」このコードでは「パス」であるため 元の名前を...私はちょうど作るために、私の前の質問でそれを変更しましたそれが右にstartNode.a(d)に関連していない左の

.on("click", function(d, i) 
      { 
      var path = startNode && startNode.path(d) || []; 
      startNode = d; 
      link.style("stroke", function(d) 
      { 
       return path.includes(d.source) && path.includes(d.target) ? "#900" : "#999"; 
      }); 
      node.attr("r", function(d) 
      { 
       return path.includes(d) || startNode == d ? 10 : 4.5; 
      }); 
      }); 
+0

に 'startNode'が引数を取る' A'という関数であるという性質を持っている、あなたは、変数dを持つ関数をこの場合は唯一の引数として呼び出します –

+0

これは 'startNode'でオブジェクトのメソッドを呼び出しています。 – Barmar

+0

これは 'document.getElementById(d)'のようなものです。 'document'はオブジェクトを含む変数で、' getElementById'は関数を含むオブジェクトのものです。 – Barmar

答えて

0

それはこのような何かを書くの簡単な方法です:

var a; 
if (startNode) { 
    a = startNode.a(d); 
} 

startNodeがnullの場合、あなたはaメソッドを呼び出すことはできません。 aの結果では2件あります。

  1. startNodeがnullの場合は、aの値はnullになります。
  2. startNodeがnullでない場合は、aの値は、呼び出しの結果になりますstartNode.a(d);
0

変数aシンプルに見えます。変数代入では、startNodeがオブジェクトであるとみなされ、startNode.aは関数を呼び出します。 aの値に関心のある人はwhethrですstartNode.a(d)は真実か偽を返します。

関連する問題