通过调用一个不带括号的函数,在注释和答案中多次说明在生产中不使用此类代码。为什么?
我是JavaScript的初学者,你可以从问题中猜到。如果有人能用外行的语言表达他们的答案,那就太好了,不过也请各位有经验的JS人员回答,他们可能需要一个更详细和技术上更详细的回答。
在生产中使用没有括号的函数可能或确实出错的例子将是对答案的一个很好的补充。
下面是调用函数的示例代码,不带括号,取自该问题的答案。
var h = {
get ello () {
alert("World");
}
}
仅使用以下命令运行此脚本:
h.ello // Fires up alert "world"
或者
var h = {
set ello (what) {
alert("Hello " + what);
}
}
h.ello = "world" // Fires up alert "Hello world"
它是否在生产中并不重要。
这是因为它看起来不像函数调用,这让其他开发人员感到困惑。
想象一下,当任何属性访问和分配都可能调用一些任意代码时,在大型应用程序中跟踪一些复杂的行为是多么困难。
尽管getters、setters和最终的代理都有有效的用途,但它们适用于小表面API中非常特定的行为。它们可能不应该被用作一般的编程技术。
< b >想改进这个问题?更新问题,以便通过编辑此帖子用事实和引用来回答问题。 为什么没有函数(没有任何参数)来展平
问题内容: 我碰到了这段JavaScript代码,但是我不知道该怎么做。运行此代码时为什么会得到“1”?(1)的这个奇怪的小附录是什么?为什么函数用括号括起来? 问题答案: 这里发生了一些事情。首先是立即调用的函数表达式(IIFE)模式: 这提供了一种在自己的范围内执行某些JavaScript代码的方法。通常使用它,以便在函数内创建的任何变量都不会影响全局范围。您可以改用以下方法: 但这需要给函数
问题内容: 我一直在我正在研究的代码库中看到类似以下的函数: 这到底在做什么?我很难在Google上找到它,因为我什至不确定这叫什么或如何在Google搜索中对其进行描述。 问题答案: 它正在解构,但包含在参数中。不含解构的等效项为:
问题内容: 我正在重构一些继承的代码,但因设计决定而受挫,无法找出适当的术语来搜索此内容。我的前任将使用这样的块: 声明没有关键字的代码块有什么意义?我不相信它的行为不像静态块。它是在构造函数中设置的替代方法吗?如果正在使用工厂,这会产生一些影响(在这种情况下不是)?我在这里发现了与此相关的线程,但是在C语言中,推理(作用域和变量声明)似乎与Java不相关。 关于“为什么”的任何想法或想法将不胜感
启动应用程序的代码如下: 在A点,我只是关闭了上下文来检查哪些beans已经关闭,然后Hibernate60秒,以便有时间检查JMX控制台。我注意到,即使上下文是关闭的,但是生产者仍然在JMX中注册。之后,我跟踪了代码,注意到在上下文关闭时,KafkaTemplate调用以下代码: 这意味着它创建了一个生产者,但是因为它是事务性的,所以它不会被关闭。 这使得在关闭上下文时,的方法将清除缓存并物理地
这里我理解哈希(#)符号将定义为本地模板变量,但是前面的星号是什么意思呢?还有,有必要吗? 下面是使用括号的示例: 我有点理解周围的括号将它绑定到HTML属性/Angular指令。这是否意味着它们是Angular计算表达式的指针?就像是Angular 1中的的等价物? 我猜真正的问题是,这些符号在Angular 2中有特殊的含义吗,知道何时使用每一个的最简单的方法是什么?谢谢!!