You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript对象数组中能否为属性值传入函数?附尝试代码

解决对象数组中函数属性的执行问题

嘿,我瞅了下你的代码,问题其实很明显,两个小失误导致函数没按预期执行:

1. 错误地把函数存成了字符串

你原代码里的buttonFunc值用单引号包起来了,这就把箭头函数变成了普通字符串,而不是可执行的函数对象。而且里面的console.log('test')还因为单引号嵌套触发了语法错误(外层单引号和内层单引号冲突了)。

2. 调用函数时没加执行括号

就算函数存对了,你forEach里只写element.buttonFunc只是获取了函数的引用,并没有触发执行,必须加()才会调用它。

修正后的完整代码

const myArray = [ 
  { 
    buttonSelector: '.edit_button', 
    buttonFunc: () => console.log('test')  // 去掉引号,直接存储函数对象
  } 
];

// 调用函数时添加括号触发执行
myArray.forEach(element => { 
  element.buttonFunc(); 
});

额外扩展:带参数的函数写法

如果你的函数需要接收参数,也可以直接在定义时预留参数位,调用时传入即可:

const myArray = [ 
  { 
    buttonSelector: '.edit_button', 
    buttonFunc: (message) => console.log(message)
  } 
];

myArray.forEach(element => { 
  element.buttonFunc('自定义输出内容'); // 输出:自定义输出内容
});

这样就能正常执行你预期的逻辑啦!

内容的提问来源于stack exchange,提问作者Deano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:06:03