AngularJS中"return"后面的括号是什么意思?

3
为什么在return后面跟随括号时,angular指令无法工作?
app.directive("alert", function () {
  return 
  {
     restrict: "EA",
      template: "<div>Alert!!</div>"
  };
});

但是当括号紧邻着返回语句时,它确实起作用:

app.directive("alert", function () {
  return {
     restrict: "EA",
      template: "<div>Alert!!</div>"
  };
});

我刚刚学到了有关JavaScript的新知识。https://jsfiddle.net/o4ctxght/ 不错的问题! - David
3个回答

3

当你只使用 return 时,它被认为是返回了 undefined(什么也没有)。你必须在同一行上返回一些内容,否则它与 return; 相同。

当你将其放在同一行上时,它被认为是从指令中返回了对象(DDO)。


1
这是因为JavaScript将return视为单个操作,因为return本身就是一个有效的操作。
第一个例子与拥有相同。
app.directive("alert", function () {
  return;
  {
     restrict: "EA",
      template: "<div>Alert!!</div>"
  };
});

1
这是JavaScript中自动逗号插入的经典案例。
当你将括号移到下一行时,编译器会自作聪明地在你的行末插入一个分号,认为你忘记了它。
app.directive("alert", function () {
  return ;
  {
     restrict: "EA",
      template: "<div>Alert!!</div>"
  };
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接