const object = { tom:{ action:{ eat:()=>{console.log("tom-eat")} } } jerry:{ action:{ eat:()=>{console.log("jerry-eat")} } } me:{ action:{ eat:()=>{console.log("me-eat")} } } }
假设有这么一个 Object ,
除了遍历和手动输入以外,怎么给这个 Object 内所有的 [key].action 内添加一个 nightshow: [key].action.eat() 键值对呢?
谢谢!
![]() | 1 dcalsky 2022-02-17 14:10:24 +08:00 js 、ruby 、python 给我最大的感受就是花在思考奇技淫巧上的时间远比老老实实写遍历来得多。 |
![]() | 2 YouMoeYi 2022-02-17 14:12:20 +08:00 直接整个类, 然后把 tom, jerry, me, 这些 new 出来不行吗 为啥不考虑遍历, 也没多麻烦 |
![]() | 3 shintendo 2022-02-17 14:13:10 +08:00 ![]() Object.values(object).forEach(x => x.action.nightshow = x.action.eat()) 这不需要什么奇技淫巧啊 |
![]() | 6 TomVista 2022-02-17 14:30:23 +08:00 Object.prototype.action={eat} |
![]() | 7 proger 2022-02-17 14:37:11 +08:00 [key].action.eat() 把这个没有返回值的空函数赋值过去好像没有意义吧,只能得到 nightshow = undefined |
![]() | 9 Pipecraft 2022-02-17 15:03:35 +08:00 用 Proxy 可以做到 |
![]() | 10 acthtml 2022-02-17 15:57:55 +08:00 可以使用 proxy. new Proxy(target, handler) |
![]() | 11 gen900 2022-02-18 08:11:08 +08:00 via iPhone for(key in object) object.key.action.nightshow = object.key.action.eat() |