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

low*_*sun 7 javascript

通过调用没有括号的函数来阅读它在注释和答案中多次声明不在生产中使用这样的代码.告诉我为什么?

我是JavaScript的初学者,你可以从这个问题中猜出来.如果有人可以用外行的话来表达他们的回答,那将是很好的,但请也请与经验丰富的JS人员讨论,他们可能需要更详细和技术上更详细的回复.

在生产中使用没有括号的函数可能出现或出错的例子将是答案的一个很好的补充.

下面是调用函数的示例代码,没有从该问题的答案中取出括号.

var h = {
  get ello () {
    alert("World");
  }
}
Run Code Online (Sandbox Code Playgroud)

运行此脚本只需:

h.ello  // Fires up alert "world"
Run Code Online (Sandbox Code Playgroud)

要么

var h = {
  set ello (what) {
    alert("Hello " + what);
  }
}

h.ello = "world" // Fires up alert "Hello world"
Run Code Online (Sandbox Code Playgroud)

Dan*_*nce 7

它是否在生产中并不重要.

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

想象一下,当任何属性访问和赋值可以调用某些任意代码时,跟踪大型应用程序中的某些复杂行为是多么困难.

尽管getter,setter和最终代理有一些有效用途,但它们适用于小型表面API中的特定行为.它们可能不应该被用作通用编程技术.

  • `......让其他开发者感到困惑. - 多么真实.维护是时间,因此是金钱! (3认同)
  • 我同意Dan的观点 - 当你的程序流程不太明确时,你在一两年前重写的代码可以证明是一个挑战.其他人可能会更难以支持您的代码.性能优势可以忽略不计,但是当您在函数内部嵌套循环并尝试在不破坏现有功能的情况下实现额外功能时,头痛会让人头脑麻木. (3认同)