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;
});
});
答案 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个案例。
startNode
为空,则a
的值将为空。startNode
不为空,那么a
的值将是调用startNode.a(d);