通过调用没有括号的函数来阅读它在注释和答案中多次声明不在生产中使用这样的代码.告诉我为什么?
我是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)
它是否在生产中并不重要.
这是因为它看起来不像是一个函数调用,这让其他开发人员感到困惑.
想象一下,当任何属性访问和赋值可以调用某些任意代码时,跟踪大型应用程序中的某些复杂行为是多么困难.
尽管getter,setter和最终代理有一些有效用途,但它们适用于小型表面API中的特定行为.它们可能不应该被用作通用编程技术.