问题标签 [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 - JavaScript 函数表达式
以下行:
只有 A() 调用该函数。def() 没有。为什么会这样?左边不是函数声明吗?
javascript - javascript返回函数表达式与在函数中声明变量
采取以下功能:
在没有关键字“var”的情况下,这会使 ya 成为局部变量,该函数会爬上作用域链以尝试查找 y 存在的位置。在没有任何预先存在的声明的情况下,它将 y 创建为全局变量。因此,我不需要在函数末尾添加 'return y' 以使 y 存在于它之外。
现在,如果我尝试做同样的事情,但将函数表达式分配给 y,它将无法正常工作。
我知道如何纠正它以使其工作:
但我不明白为什么我必须返回全局变量,因为它分配了一个函数表达式。有什么不同?
javascript - 使用命名函数表达式有什么意义?
我正在浏览这个关于函数声明和函数表达式之间区别的博客。
它给出了这两个例子。他们称第一个为“匿名函数表达式”,第二个为“命名函数表达式”。
我在 Chrome 的 JS 控制台中测试了这两个,我看到以下内容:
我的问题是:在第二个函数表达式声明中,“bar”的意义何在?一般来说,为什么要使用命名函数表达式?
javascript - 为什么我不能在带有 JQuery 的事件处理函数中将“函数声明”作为参数传递?
为什么使用函数声明不能正常工作,但使用函数表达式却可以正常工作?假设唯一的区别是浏览器如何将它们加载到执行上下文中。
使用函数表达式效果很好:
javascript - 用函数更新值,返回不工作
所以我正在使用一个函数来更新我的值,但我无法将它们取回。我看到值没有得到更新,但是有没有办法将它们保存为对函数返回的引用。
所以在这里我遇到了更改模式和 changeMode 函数表达式的问题。其中的模式应该引用 this.mode 然后我应该能够更新该值。
javascript - JavaScript 匿名函数表达式 vs IIFE
遇到了一些在表达式中使用 IIFE 而不仅仅是普通函数的代码。
通常我会这样写:
IIFE的原因是什么?我唯一能想到的是,IIFE 可能custom_type
在开始时只分配一次变量,而第二次可能会在每次引用变量时继续检查更新的类型。
javascript - “函数表达式”声明的约定
我是 js 新手,有时我很难习惯它的代码约定。所以我有一个问题,我应该如何声明函数表达式?看看我的代码,我是怎么做的,还是有更好的做法?
提前致谢。
javascript - 为什么我不能为具有相同名称的命名函数表达式中的变量赋值?
这是一个名为 的命名函数表达式test
。在里面,我分配123
给一个变量,也叫test
. 然后test
被记录。该函数在控制台中打印其主体,但不是123
. 这种行为的原因是什么?
我对函数执行的解释在哪里失败?
- 函数执行开始:
test
是引用函数本身的局部变量 - 局部变量
test
被重新分配给数字123
console.log(test)
显示数字123
。
javascript - 模块模式中的函数声明与函数表达式
我刚刚了解了函数声明和函数表达式之间的区别。这让我想知道我是否在我的 AngularJS 代码中做对了。我正在遵循 John Papa 使用的模式,但现在它似乎与模块模式的典型 JS 方法不一致。John Papa 在他的控制器和服务中大量使用嵌套函数声明。这很糟糕吗?
有什么理由赞成这个:
对此:
我主要是一名 C# 开发人员,并且仍然习惯于 JavaScript 的所有细微差别。我更喜欢后一种方法,因为 IIFE 中的所有功能都是私有的,而顶部的显示模块模式实际上是公共部分。在 C# 类中,我总是在私有支持函数之前拥有我的公共属性和方法。但是,我意识到它在 JS 世界中可能没有那么简单。
使用后一种方法有什么隐患(如果有的话)?