问题
工作的例子是,你是在一种情况下和在其他情况下的定义后使用tick
它的定义之前。
在第一种情况:
force.on("tick", tick);
function tick() { /* ... */ }
功能tick
在分析时被定义并且可作为第二个参数传递。
在另一方面中:
force.on("tick", tick);
var tick = function() { /* ... */ };
可变tick
在分析时(因此JSHint不抱怨)被定义,但它仅在运行时获取其值。当执行force.on("tick", tick)
时,其值为undefined
。
var f;
if (true) {
f = function() { return 1; };
} else {
f = function() { return 2; };
}
f(); // returns 1
与:
if (true) {
function f() { return 1; }
} else {
function f() { return 2; }
}
f(); // returns 2, from the latest definition
见this question了解使用var tick = function() ...
和function tick() ...
更好的区别,当你考虑下面的例子
的差异更为明显。
你拼错“功能”大概:) –
有一个错字。 'fucntion'应该是'function'。如果这不是问题,那么您正试图在定义之前使用该函数。但要正确地帮助您,您必须发布代码的相关部分。 –
@GintasK'fucntion'是一个打字错误:D @FelixKling,我已经添加了2个示例,请检查是否添加了d3js库,因为我遇到了IPS问题 – Scorpy86