Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在生产环境中使用没有括号的函数不好?_Javascript - Fatal编程技术网

Javascript 为什么在生产环境中使用没有括号的函数不好?

Javascript 为什么在生产环境中使用没有括号的函数不好?,javascript,Javascript,在评论和回答中多次指出,在生产中不要使用此类代码。为什么 我是JavaScript的初学者,你可以从问题中猜到。如果有人能用外行的语言表达他们的答案,那就太好了,不过也请各位有经验的JS人员回答,他们可能需要一个更详细和技术上更详细的回答 在产品中使用不带括号的函数可能会或确实会出问题的例子将是对答案的一个很好的补充 下面是调用函数的示例代码,不带括号,取自该问题的答案 var h = { get ello () { alert("World"); } } 仅使用以下命令运行此

在评论和回答中多次指出,在生产中不要使用此类代码。为什么

我是JavaScript的初学者,你可以从问题中猜到。如果有人能用外行的语言表达他们的答案,那就太好了,不过也请各位有经验的JS人员回答,他们可能需要一个更详细和技术上更详细的回答

在产品中使用不带括号的函数可能会或确实会出问题的例子将是对答案的一个很好的补充

下面是调用函数的示例代码,不带括号,取自该问题的答案

var h = {
  get ello () {
    alert("World");
  }
}
仅使用以下命令运行此脚本:

h.ello  // Fires up alert "world"


它是否在生产中并不重要

这是因为它看起来不像函数调用,这让其他开发人员感到困惑。

想象一下,当任何属性访问和分配都可能调用某些任意代码时,在大型应用程序中跟踪某些复杂行为可能有多么困难


尽管getter、setter和最终代理都有有效的用途,但它们适合于小型表面API中非常特定的行为。它们可能永远都不应该被用作通用编程技术。

更适合该站点。如果您只是为了创建无括号函数而故意创建,请不要这样做。但是,如果你有一个合理的理由,我看没有理由不这样做。getter和setter应该只获取和设置值,但它们的要点是调用代码使用它们就像它们是普通属性一样。像
good
bad
这样的术语是主观值。如果代码只针对您,并且您总是这样编写,那么您将了解自己风格的含义。在团队中工作时,必须定义并(严格)遵循一些编码准则,以避免出现此类问题。讨论。混乱混淆意味着失去理解琐碎代码的时间,这会导致挫败感,延长项目时间通常会导致更高的成本。@Juhana在提到其他网站时,指出
…让其他开发人员感到混淆通常是有帮助的。
-这是多么正确。维护是时间,也是金钱!我同意Dan的观点——当程序流程不太清晰时,重新访问您一两年前编写的代码可能是一个挑战。其他人支持您的代码可能会变得更加困难。性能优势可以忽略不计,但当您在函数中嵌套循环并试图在不破坏现有功能的情况下实现额外功能时,头痛会让人麻木。我们今天编写的代码可能会被其他开发人员审查和维护,为什么不把它写得清晰易读,让他们的工作更容易?让我们开始思考对方!
var h = {
  set ello (what) {
    alert("Hello " + what);
  }
}

h.ello = "world" // Fires up alert "Hello world"