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

javascript - 为什么我的函数调用仅在函数是表达式而不是函数声明时才起作用?

在学习闭包时,我编写了一个函数,该函数返回一个将名称打印到控制台的函数:

为什么只有在使用函数表达式时才调用内部函数?为什么当我用 printName() 而不是第二个调用函数声明时,它只运行外部控制台日志?

同样,如果我newFunc在没有括号的情况下调用我的函数表达式,它只会打印OUTER: steven. 但是,如果我使用括号并调用它newFunc(),它会同时打印OUTER: stevenAND INNER: steven。这是为什么?

0 投票
1 回答
23 浏览

typescript - 当函数表达式声明类时如何定义类型?

下面我想替换任何原因我的配置不允许任何

新 () => 任何

如何定义 Foo() 的结果?

0 投票
1 回答
35 浏览

javascript - 使用函数声明与函数表达式在模块模式中切换变量

我有一个模块模式,其中一个变量将 currentPlayer 设置为 1。我使用函数表达式来切换该变量

如果我运行game.currentPlayer它会记录 1,然后我运行game.toggleCurrentPlayer(),并且它没有currentPlayer按预期更改,它仍然返回 1。

但是,toggleCurrentPlayer()使用 , 更改函数this似乎能够成功更改变量

我知道函数声明和函数表达式对关键字有不同的含义this,但是为什么toggleCurrentPlayer()只有this关键字才能正常工作而不能自行设置变量呢?

0 投票
0 回答
28 浏览

javascript - 变量声明是一个语句,但为什么函数表达式不是?

我无法理解语句和表达式之间的区别。我认为总是缺少一些东西,因为我不能很好地理解表达式的含义评估为一个值。例如,我们说变量声明是一个语句 (let x = 2;),因为它没有给我们返回值,所以为什么我们说这样的函数 (let foo = function () {};) 是一个表达式而不是一个语句虽然它也没有给我们返回值?

0 投票
0 回答
46 浏览

javascript - 控制台输出序列有时与调用它们的序列不匹配

我是 JavaScript 新手,这是我关于 Stack Overflow的第一个问题,如果我错过了应该包含在问题中的内容,请告诉我。

问题 1:谁能解释为什么有时控制台输出序列与调用它们的序列不匹配(myFunction();messageLogger();)。

这是如上图和原始代码图像中所示的基本函数表达式代码。

运行myFunction();后,此代码应在控制台中显示错误;如图像Console Output Image 1,但有时在运行myFunction() 之前显示错误;如图像控制台输出图像 2 所示

0 投票
2 回答
46 浏览

javascript - JavaScript中的'let'和'this'有什么区别?

我正在学习 JavaScript,来自 Ruby,也用 C 做过一些事情。我阅读的一个例子是:

并与

在第一个示例中,无法在 letCounter 实例上访问计数:

而在第二个中,计数,〜我认为〜,是函数本身所有实例的属性吗?

似乎 JavaScript 中的函数可以具有“状态”(调用console.log(let_counter_ins())将不断增加一个计数器,而不是从 0 开始)。而且这个“状态”,设置为与let“状态”设置有什么不同this?似乎两者的实例都letCounterthisCounter跟踪某个计数器,但它的访问方式不同吗?试图了解使用thisvs设置函数属性之间的区别let以及为什么其中一个可以在外部使用。

0 投票
3 回答
43 浏览

javascript - 难以通过函数调用进行迭代 - 第一类函数

我提供的代码可以正常执行,但是正如您所看到的,它会反复为每位客人提供茶点,然后再继续下一位客人。

我正在摸索如何以一种有效的方式更改我的代码,以便轮流为每个客户提供茶点,但在程序运行时仍然每次都要参加四次。

非常感谢所有建议。

JS:

0 投票
1 回答
50 浏览

javascript - 这是一个箭头函数声明吗?有这样的事吗?

我正在使用箭头函数研究函数表达式与函数声明。

我在想这是一个箭头函数表达式:

这是一个箭头函数 decleration:

那是对的吗?或者也许没有箭头函数声明之类的东西?也许只有箭头函数表达式?

如果是这样,当我将命名箭头函数表达式放在另一个变量中时会调用什么?

很高兴任何答案!:)

0 投票
0 回答
213 浏览

reactjs - React with Typescript:在函数表达式组件中将函数作为道具传递

我目前正在学习如何将 React 与 Typescript 一起使用,并遇到了这种情况:我需要将一个函数作为道具传递给子组件,假设这是一个带有大量参数的非常复杂的函数。您认为最好的方法是什么?如果这是一个类组件,我可以像这样导出函数类型并让子组件实现它:

但是由于我使用的是函数表达式组件,所以上述方法是不可能的。

任何建议将不胜感激!

0 投票
1 回答
59 浏览

typescript - 在接口中使用胖箭头和非胖箭头语法声明函数有什么区别?

在 TypeScript 的接口和类型中使用胖箭头和非胖箭头语法声明函数有什么区别?

例如:

相比:

起初,我认为它会限制我实现功能的方式,但似乎并非如此。所以,我不认为它与thisES6 中的类似。但是我确实注意到,当我尝试重载时,以胖箭头语法声明的那个有问题。

例如,这是不可接受的:

这将给出一个错误:

但这没关系:

那么,这两种语法是否相同?是否有任何差异或场景我应该使用一个而不是另一个?