问题标签 [function-expression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
11 浏览

function-declaration - 由于函数表达式的多样性,为什么我可以将 JavaScript 中的变量作为函数调用?

那么为什么我可以将变量用作函数呢?

0 投票
1 回答
402 浏览

javascript - AngularJS - $scope 函数表达式后的分号?

对于 JavaScript,最好在函数表达式块之后使用分号:

在 AngularJS 中,比如在控制器中,使用 dreaded$scope怎么样?我经常看到这些在结束块之后没有分号:

但是有谁知道这方面的最佳做法?在这些 $scope '表达式' 的末尾添加分号会破坏我的 AngularJS 应用程序吗?像这样:

0 投票
1 回答
53 浏览

java - 可运行类未执行

我实现了一个虚拟计数器,只是在 0-100 之间上下计数。

这很简单,工厂提供了一个实现 Runnable 的 VirtualCounter。

有效的是Runnable 的这种用法

什么不工作是这样的:

所以我知道如何让它运行,但是我真的很想了解为什么第一次尝试有效而第二次无效。

第二个的 run 方法永远不会被调用。调试器不由明白。这种行为有什么好的解释吗?

谢谢

0 投票
0 回答
43 浏览

javascript - 说 function 关键字在 JavaScript 中基本上已过时是否正确?

我想看看我的理解是否正确:function关键字的功能在es6中被划分为类和箭头函数。

首先,在匿名函数的情况下,我认为使用function() {...}箭头函数没有优势,尤其是考虑到this箭头函数中的绑定。

对于不是构造函数的非匿名函数,它们可以声明为绑定到名称的箭头函数。考虑到提升和可读性方面的差异,我认为使用箭头函数是否具有严格的优越性在某种程度上是一个见仁见智的问题。

对于作为构造函数的函数,可以改用类。

那么,按照现代惯例,说function永远不需要使用关键字,或者更强烈地说,永远不应该使用关键字是否正确?

编辑:要清楚,我知道函数声明、函数表达式和箭头函数之间的区别。我并不是要建议我们可以通过非 es6 JS 并盲目地将函数 decs/exprs 替换为箭头函数。我的问题是,在用 JavaScript 编写新应用程序时,是否有理由使用function关键字,如果我的理解是正确的,function关键字的效用可以被认为是类和箭头函数之间的拆分。

0 投票
3 回答
609 浏览

javascript - javascript 通过引用和内存

伙计们,我正在尝试学习一些 javascript,并且我有一个我认为很重要的问题要问。所以到目前为止我得到的是当我做这样的事情时:

在创建阶段,将在内存中创建一个a具有未定义值的变量 (),在执行期间,该变量a将指向函数所在的内存槽。

那么 a 指向的旧点(具有未定义值的点)会发生什么?另外,如果我设置b为等于a这意味着它们将指向同一个内存插槽,对吗?

b 之前指向的插槽发生了什么?

最后,函数是否在创建阶段被保存到内存中,但由于没有指向它或它只是在执行阶段被保存而无法调用?

谢谢,我希望你能帮助我让我的头脑清醒(我无法入睡这些问题在我的头上:D)

0 投票
3 回答
344 浏览

javascript - 命名和未命名匿名 Javascript 函数之间的区别

通常,在 Javascript 中,当我想将匿名/内联函数作为参数传递给另一个函数时,我会执行以下操作之一。

但是,我最近继承了一个使用命名函数作为内联参数的代码库,就像这样

我以前从未见过这种语法。该函数似乎foo仍然是匿名的——在调用或被调用范围内都没有定义函数。这只是风格问题,还是可以使用命名函数(foo上面)作为匿名函数来改变该程序的行为或状态?

这是专门针对 NodeJS(不是基于浏览器的程序)程序的,我对使用函数作为参数的特定行为特别感兴趣。也就是说,来自跨平台和运行时的行为信息是受欢迎的。

0 投票
0 回答
48 浏览

javascript - 为什么这个函数表达式在第一次赋值时执行?

我突然对这个例子感到很困惑:

https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_setinterval_clearinterval

在剧本中,

为了

为什么当我们将整个函数分配给变量 myVar 时会执行这个 setInterval(myTimer,1000) 函数?所以如果我们只使用 setInterval(myTimer, 1000);,它会被执行,但是如果我们使用 var myVar = setInterval(myTimer, 1000);,它会同时被执行并赋值给变量 myVar 对吧?我可以知道它背后的逻辑是什么吗?分配后这个 myVar 是什么?我们对这个 myVar 使用 clearInterval 来停止的内在逻辑是什么?太感谢了!

0 投票
1 回答
96 浏览

javascript - 如何在 Dropzone 选项上设置命名函数表达式?

我的项目中有多个 Dropzones,它们都非常相似。在其中一个上,我必须创建最小文件宽度,但视频 Dropzone 不适用于文件宽度代码。我最终不得不为每个 Dropzone 创建一个单独的选项调用。这为两个选项调用中的函数创建了许多重复的代码。有没有一种方法可以为我的所有选项创建命名函数表达式并使用名称,这样我就没有太多重复的代码?

理想情况下,我希望accept、send 和removedFile 各为一行以引用命名函数表达式,并传入我的persist 变量。我希望init 事件做同样的事情。

0 投票
1 回答
81 浏览

javascript - 为什么命名函数表达式的“typeof”返回未定义?

我是 JS 的新手,所以如果这听起来很愚蠢,请原谅我。我在玩函数声明函数表达式的概念。

我有以下代码:

如果我hoisting按照 JavaScript 中的定义,当我使用printSomethingandprintSomeString时,它们应该是可用的,因为它们的声明已被提升。

typeof printSomething 返回函数,但typeof printSomeString返回未定义。为什么这样?

这个命名函数表达式在使用之前不是已经声明和提升了吗?

命名函数表达式本身不是函数吗?

另外,当我打电话时printSomeString('Some STRING'),它会返回以下内容

未捕获的 ReferenceError:未定义 printSomeString

这里发生了什么?

0 投票
1 回答
26 浏览

javascript - Function expression as argument for other function call

I am quite new to javascript and I am trying to understand the function expression as argument for other function call.

Here is one example that use mongoose to do a search:

I understand that function(err,user){...} inside User.findById() is a function expression, and if the User.findById() return something, it will assign value to variable user, as well as (if) error message to err.

The part that confuse me is that if function findById is used in this way User.findById(param_1,param_2,...), then how err and user receive its value?