多个 JavaScript 方法调用未在表达式中调用

multiple javascript methods calls not invoked in expression

本文关键字:调用 表达式 方法 多个 JavaScript      更新时间:2023-09-26

JavaScript 函数

function tile(u,v, a,b,c,d) {
  var c0 = tileCorners[a].eval(u,v);
  var c1 = tileCorners[b].eval(u-1,v);
  var c2 = tileCorners[c].eval(u,v-1);
  var c3 = tileCorners[d].eval(u-1,v-1);
  return c0 + c1 + c2 + c3;
}

应等效于

function tile(u,v, a,b,c,d) {
  return
    tileCorners[a].eval(u,v) +
    tileCorners[b].eval(u-1,v) +
    tileCorners[c].eval(u,v-1) +
    tileCorners[d].eval(u-1,v-1);
}

然而,第二个函数总是返回undefined(调试器不会"单步执行"对eval的调用),而第一个函数的行为正确。在错误的表达式中有多个eval方法调用是否有问题?

你是分号插入规则的受害者。

尝试:

return tileCorners[a].eval(u,v) +
tileCorners[b].eval(u-1,v) +
tileCorners[c].eval(u,v-1) +
tileCorners[d].eval(u-1,v-1);

您的版本等效于:

return;
tileCorners[a].eval(u,v) +
tileCorners[b].eval(u-1,v) +
tileCorners[c].eval(u,v-1) +
tileCorners[d].eval(u-1,v-1);