【发布时间】:2021-11-21 13:25:48
【问题描述】:
这是我的代码示例:
let arr = [18, 23, 44, 50];
let obj = {
name: 'Kate',
};
arr.forEach(let func = function(value) {
console.log(`${this.name} is ${value} years old`);
}, obj); //SyntaxError
所以,看起来我们可以在forEach() 方法中仅使用函数声明和箭头函数。我是对的还是只是错过了什么?
【问题讨论】:
-
在这里检查 forEach 语法developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
我认为你正在尝试像
function printUser(value) { console.log(this.name+' is '+value+' years old'); } arr.forEach(printUser.bind(obj));那样绑定你的obj -
only function declaration.. 在表达式上下文中声明的函数(例如,在=符号的右侧,在()等内部)是一个函数表达式。所以 ONLY 函数表达式可以在forEach()中使用,如果您正在编写函数字面量(而不是变量或函数名称),因为当您将函数放入()时,它就变成了表达式 -
@slebetman "在表达式上下文中声明的函数(例如,在 = 符号的右侧,inside () 等)是函数表达式.. ." 我不能同意关于
()的部分。我刚刚检查了MDN。函数表达式语法只有一种变体 -
请问,您这样做有什么原因吗?还是只是出于兴趣?
标签: javascript arrays function object foreach