如何解决遍历函数对象,并向对象内的每个单个函数添加一个新方法
我有一个object
中的一个functions
,我需要添加一个名为method
的新的单个log
(它会显示method
的名称) function
中的每个Object
在运行时动态地移动。
例如,假设这是我的object
的动态functions
:
let actions = {
theBoringFunction() {
return 'function 1'
},anotherBoringFunction() {
return 'function 2'
},theMostBoringFunction() {
return 'function 3'
},}
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)
}
}
很显然,它没有用,因为key
是string
的一种,因此无法向其中添加method
。我该如何完成寻找的工作?我一直在尝试proxies,但到目前为止也没有运气。
编辑数字1:
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 举报,一经查实,本站将立刻删除。