微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

遍历函数对象,并向对象内的每个单个函数添加一个新方法

如何解决遍历函数对象,并向对象内的每个单个函数添加一个新方法

我有一个object中的一个functions,我需要添加一个名为method的新的单个log(它会显示method名称function中的每个Object在运行时动态地移动。

例如,假设这是我的object的动态functions

let actions = { 
  theBoringFunction() { 
    return 'function 1'
  },anotherBoringFunction() {
    return 'function 2'
  },theMostBoringFunction() {
    return 'function 3'
  },}

我可以像这样分别向方法添加新的function

actions.anotherBoringFunction.log = function () {  
  return console.log(this.name)
}

actions.anotherBoringFunction.log() // logs anotherBoringFunction

它的工作原理就像是一种魅力,但是我在functions中有很多actions object,我需要为所有这些对象添加log()

我尝试遍历object添加method,如下所示:

// won't work key is typeof String :(
for (let key in actions) { 
  key.log = function () { 
    return console.log(this.name)
  }
}

很显然,它没有用,因为keystring的一种,因此无法向其中添加method。我该如何完成寻找的工作?我一直在尝试proxies,但到目前为止也没有运气。

编辑数字1:

添加一个可重复的示例,例如 here

let actions = { 
  theBoringFunction() { 
    return 'function 1'
  },}

// won't work key is typeof String :(
/* for (let key in actions) { 
  key.log = function () { 
    return console.log(this.name)
  }
} */

actions.anotherBoringFunction.log = function () {  
  return console.log(this.name)
}

actions.anotherBoringFunction.log() // logs anotherBoringFunction

解决方法

for (let key in actions) { 
  actions[key].log = function () { 
    return console.log(this.name)
  }
} 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。