【问题标题】:Javascript pass function in object value [closed]对象值中的Javascript传递函数[关闭]
【发布时间】:2018-04-27 15:12:38
【问题描述】:

我有一个对象数组,是否可以在键值中传递函数?

这是我尝试过但没有成功的方法:(

const myArray = [

 {
        buttonSelector: '.edit_button',
        buttonFunc: '() => console.log('test'),
 }
]

运行函数:

myArray.forEach(element => {
element.buttonFunc
}) // should console.log('test')

【问题讨论】:

  • 只是不要在函数周围使用单引号?
  • element.buttonFunc() 当然去掉单引号
  • 不仅可能而且非常普遍。
  • 你有一个错字; buttonFunc:...

标签: javascript


【解决方案1】:

如果你想让buttonFunc 成为一个函数,那么不要用引号将它括起来,因为这使它成为一个字符串而不是一个函数:

buttonFunc: '() => console.log("test")',

应该是

buttonFunc: () => console.log('test'),

然后你可以像这样执行它:

myArray.forEach(element => {
    element.buttonFunc();
});
// should console.log('test')

【讨论】:

    【解决方案2】:

    您没有执行element.buttonFunc。相反,对于每个元素,将调用以下函数:

    function() {
        element.buttonFunc;
    }
    

    因此,它没有被执行。

    要让您的 forEach 正常工作,请尝试以下操作:

    myArray.forEach(element => element.buttonFunc()) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 2011-12-07
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多