javascript - 循环遍历函数对象并为对象中的每个函数添加一个新方法
问题描述
我有一个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)
}
}
显然,它不起作用,因为它key
是一种类型,string
所以它不能添加method
到它。我怎样才能完成我正在寻找的东西?我一直在尝试代理,但到目前为止也没有运气。
编辑编号 1:
我在这里添加了一个可重现的示例。
let actions = {
theBoringFunction() {
return 'function 1'
},
anotherBoringFunction() {
return 'function 2'
},
theMostBoringFunction() {
return 'function 3'
},
}
// 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)
}
}
推荐阅读
- php - woocommerce 应显示欧盟的相同价格,但其他国家/地区的净值
- sql-server - 不推荐使用 Sql 限制?
- vba - vba selenium在对话框角色中查找元素
- google-cloud-platform - 是否可以在私有目录中实施一种采购审批流程
- jboss - 使用JBoss建立Mysql JTA连接,以报错结束
- javascript - 根据 url 改变值
- hive - 从一个立方体到另一个立方体的调整
- java - 比较可能无限的双精度数
- python - SDK,尝试从群组 Gmail 中调用成员并更新
- spring-restdocs - JsonIgnore 不适用于 Spring Rest-Docs