问题标签 [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 投票
1 回答
342 浏览

javascript - 函数在 Javascript 中返回未定义

无法弄清楚如何从此函数返回值(字符串):

当我console.log(html)在里面使用时,xhttp.onreadystatechange它会打印出正确的结果,但我不明白如何返回loadPage(url). 尝试了这些工作,但都没有return xhttp.onreadystatechangereturn xhttp.onreadystatechange()

0 投票
1 回答
1450 浏览

javascript - 谷歌浏览器中的匿名函数表达式

我正在使用 Google Chrome 52 64 位版本。我发现如果我使用匿名函数表达式 ex。

该变量expressionFunc将保存分配的匿名函数,但它也expressionFunc为该函数添加了一个名称属性。因此,如果我 expressionFunc.name在控制台中这样做,它会给我expressionFunc.

据我所知,这个匿名函数表达式应该保持匿名,并且变量引用的函数不应该在函数的 name 属性中包含变量名。

为什么 chrome 将 name 属性分配给匿名函数?

0 投票
2 回答
87 浏览

javascript - for 循环每次在 Livescript 中分配相同的函数

我希望“x”的结果,“y”的结果和“z”的结果是一样的:

在 Livescript 中:

在 Javascript 中:

印刷:

0 投票
1 回答
85 浏览

javascript - 所有函数都在 IIFE 表达式中吗?

if (function foo(){}) 是一个表达式,因为“上下文”因为“(括号)”是一个分组运算符,分组运算符只能包含一个表达式。

这就引出了一个问题,你可以在 IIFE 中声明一个函数,还是它仍然算作一个函数表达式?

0 投票
0 回答
136 浏览

javascript - javascript函数表达式与声明

下面的代码怎么可能不会警告未定义?据我了解,只有变量名称声明被提升,然后在 createWorkout() 调用时它应该是未定义的,但它不是并且工作得很好。

0 投票
1 回答
64 浏览

javascript - 在 Javascript 中从对象内引用对象的数组

我想创建一个 InvertedPeninsula 类型的新对象:

为了创建这个对象类型,我使用了一个对象构造函数:

总之,构造函数创建了一个对象,其中包含一个名为“inhabitants”的数组,该数组本身包含 4 个对象字面量。InvertedPeninsula 对象类型构造函数接着将四个函数表达式添加到居住者数组中。换句话说,居民数组包含 4 个对象和 4 个方法,可以通过使用“for-in”迭代器打印数组的内容来确认。

一切都按照我想要的方式运行,但我试图理解的是为什么这个构造函数可以在不提及它的名字的情况下引用居民数组。尤其是:

如果上面的代码不是:

反而?

同样,人类、精灵和幽灵数组属性都返回:

分别。但是,不应该是:

我做了这些建议的更改,但是在尝试调用任何一个函数时,例如:

我收到这些错误:

未捕获的类型错误:无法读取未定义的属性“getRace”

未捕获的类型错误:无法读取未定义的属性“长度”

我正在使用谷歌浏览器 55.0.2883.87 m

关于这里发生的事情的任何可能的解释?

0 投票
2 回答
38 浏览

dictionary - 将参数传递给array.map中的方法

如何将参数传递给在数组内作为参数传递的方法。地图方法。

我想在调用 map 方法时将 dynamicValue 传递给 modifierMethod。

0 投票
1 回答
61 浏览

javascript - isNaN 可以用作命名函数表达式中的标识符吗?

上下文

我正在阅读《你不知道 JS:Up & Going》第 2 章:进入 JavaScript的书。在Polyfilling部分,作者给出了如下示例:

所以,这里要做的是创建一个 polyfill,以便 ES6 方法Number.isNaN可以在旧浏览器(即 ES6 之前的版本)中运行。正如我所料,他使用了旧的isNaN方法。前一种方法实际上旨在通过设计弃用后者。

问题

为什么 isNaN 被用作命名函数表达式的标识符?我原以为它会以某种方式在体内使用。为什么?因为在网络上的示例中通常会看到所有标识符,所以在比较函数表达式和函数声明时,采用以下形式:

函数声明:

函数表达式:

所以在这个例子中bar被定义在 'bar()' 字符串之后的括号内。那么,当isNaN是 JavaScript 中已经定义的函数时,为什么还要使用上面的 'isNaN'呢?我们实际上是为了 polyfill 的目的而覆盖它吗?我在这里错过/误解了什么?

0 投票
2 回答
103 浏览

javascript - JavaScript:是否可以给函数赋予与函数表达式相同的名称?

在 JavaScript 中,如果我创建一个函数表达式,如:

这个可以吗?会不会出现什么问题?或者我应该这样做:

0 投票
2 回答
1150 浏览

javascript - 函数声明和函数表达式性能差异

我使用JSperf测试了一小段代码

在此处输入图像描述

根据我遇到的几篇文章,两者应该具有相似的性能,而 test2 有一点优势。但这里完全相反。有人可以解释为什么会有巨大的差异吗?

编辑:我也理解它们之间的区别。请不要将此标记为此问题或其他讨论语义差异的问题的副本,并且不要回答我关于性能的问题。

谢谢你。