问题标签 [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.
javascript - 为什么我的函数调用仅在函数是表达式而不是函数声明时才起作用?
在学习闭包时,我编写了一个函数,该函数返回一个将名称打印到控制台的函数:
为什么只有在使用函数表达式时才调用内部函数?为什么当我用 printName() 而不是第二个调用函数声明时,它只运行外部控制台日志?
同样,如果我newFunc
在没有括号的情况下调用我的函数表达式,它只会打印OUTER: steven
. 但是,如果我使用括号并调用它newFunc()
,它会同时打印OUTER: steven
AND INNER: steven
。这是为什么?
typescript - 当函数表达式声明类时如何定义类型?
下面我想替换任何原因我的配置不允许任何
新 () => 任何
如何定义 Foo() 的结果?
javascript - 使用函数声明与函数表达式在模块模式中切换变量
我有一个模块模式,其中一个变量将 currentPlayer 设置为 1。我使用函数表达式来切换该变量
如果我运行game.currentPlayer
它会记录 1,然后我运行game.toggleCurrentPlayer()
,并且它没有currentPlayer
按预期更改,它仍然返回 1。
但是,toggleCurrentPlayer()
使用 , 更改函数this
似乎能够成功更改变量
我知道函数声明和函数表达式对关键字有不同的含义this
,但是为什么toggleCurrentPlayer()
只有this
关键字才能正常工作而不能自行设置变量呢?
javascript - 变量声明是一个语句,但为什么函数表达式不是?
我无法理解语句和表达式之间的区别。我认为总是缺少一些东西,因为我不能很好地理解表达式的含义评估为一个值。例如,我们说变量声明是一个语句 (let x = 2;),因为它没有给我们返回值,所以为什么我们说这样的函数 (let foo = function () {};) 是一个表达式而不是一个语句虽然它也没有给我们返回值?
javascript - 控制台输出序列有时与调用它们的序列不匹配
我是 JavaScript 新手,这是我关于 Stack Overflow的第一个问题,如果我错过了应该包含在问题中的内容,请告诉我。
问题 1:谁能解释为什么有时控制台输出序列与调用它们的序列不匹配(myFunction();和 messageLogger();)。
这是如上图和原始代码图像中所示的基本函数表达式代码。
运行myFunction();后,此代码应在控制台中显示错误;如图像Console Output Image 1,但有时在运行myFunction() 之前显示错误;如图像控制台输出图像 2 所示。
javascript - JavaScript中的'let'和'this'有什么区别?
我正在学习 JavaScript,来自 Ruby,也用 C 做过一些事情。我阅读的一个例子是:
并与
在第一个示例中,无法在 letCounter 实例上访问计数:
而在第二个中,计数,〜我认为〜,是函数本身所有实例的属性吗?
似乎 JavaScript 中的函数可以具有“状态”(调用console.log(let_counter_ins())
将不断增加一个计数器,而不是从 0 开始)。而且这个“状态”,设置为与let
“状态”设置有什么不同this
?似乎两者的实例都letCounter
在thisCounter
跟踪某个计数器,但它的访问方式不同吗?试图了解使用this
vs设置函数属性之间的区别let
以及为什么其中一个可以在外部使用。
javascript - 难以通过函数调用进行迭代 - 第一类函数
我提供的代码可以正常执行,但是正如您所看到的,它会反复为每位客人提供茶点,然后再继续下一位客人。
我正在摸索如何以一种有效的方式更改我的代码,以便轮流为每个客户提供茶点,但在程序运行时仍然每次都要参加四次。
非常感谢所有建议。
JS:
javascript - 这是一个箭头函数声明吗?有这样的事吗?
我正在使用箭头函数研究函数表达式与函数声明。
我在想这是一个箭头函数表达式:
这是一个箭头函数 decleration:
那是对的吗?或者也许没有箭头函数声明之类的东西?也许只有箭头函数表达式?
如果是这样,当我将命名箭头函数表达式放在另一个变量中时会调用什么?
很高兴任何答案!:)
reactjs - React with Typescript:在函数表达式组件中将函数作为道具传递
我目前正在学习如何将 React 与 Typescript 一起使用,并遇到了这种情况:我需要将一个函数作为道具传递给子组件,假设这是一个带有大量参数的非常复杂的函数。您认为最好的方法是什么?如果这是一个类组件,我可以像这样导出函数类型并让子组件实现它:
但是由于我使用的是函数表达式组件,所以上述方法是不可能的。
任何建议将不胜感激!
typescript - 在接口中使用胖箭头和非胖箭头语法声明函数有什么区别?
在 TypeScript 的接口和类型中使用胖箭头和非胖箭头语法声明函数有什么区别?
例如:
相比:
起初,我认为它会限制我实现功能的方式,但似乎并非如此。所以,我不认为它与this
ES6 中的类似。但是我确实注意到,当我尝试重载时,以胖箭头语法声明的那个有问题。
例如,这是不可接受的:
这将给出一个错误:
但这没关系:
那么,这两种语法是否相同?是否有任何差异或场景我应该使用一个而不是另一个?