我不确定这个宣言

时间:2016-11-08 00:57:04

标签: javascript variables declaration

var a = startNode && startNode.a(d)
你好,伙计们, 我想问一下这个宣言。部分“startNode.a(d)”确实让我头疼。这是什么意思?变量“a”的值“startNode”再次调用变量“a”?

非常感谢你们!

ħ

我编辑这个,因为Tom要求整个代码: “a”的原始名称是此代码中的“路径”...我在上一个问题中更改了它,使其看起来很简单

.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;
            });
          });

2 个答案:

答案 0 :(得分:0)

左侧的变量a与右侧的startNode.a(d)无关。变量赋值假定startNode是一个对象,startNode.a调用一个函数;对a的价值感兴趣的是startNode.a(d)返回真或假。

答案 1 :(得分:0)

这是写这样的简写方式:

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

如果startNode为空,则无法调用a方法。就a中的结果而言,您有2个案例。

  1. 如果startNode为空,则a的值将为空。
  2. 如果startNode不为空,那么a的值将是调用startNode.a(d);
  3. 的结果