gpt4 book ai didi

javascript - 如何修改对匿名函数的所有引用

转载 作者:行者123 更新时间:2023-12-01 16:25:28 25 4
gpt4 key购买 nike

是否可以修改对匿名函数的所有引用,以便来自其他对象的调用反射(reflect)更改?

下面是一个例子,其中 obj1.name 和 obj2.name 都指向同一个函数,但是由于在创建 obj2.name = obj1.name 时该函数是按值传递的,所以 obj1.name 的变化不会'不会影响 obj2.name。

在此示例中,我想修改该函数,以便它为所有对象返回“已编辑”。

//This two declarations are part of the original code that I cannot modify.
let obj1 = {
name: function() { return 'original'; }
}
let obj2 = {
name: obj1.name
}
// obj1.name() >> 'original'
// obj2.name() >> 'original'

// At this point, I want to modify the returned value.
obj1.name = function() { return 'edited'; }
// obj1.name() >> 'edited'
// obj2.name() >> 'original'

最佳答案

试试这个。这样 obj2.name 也是一个函数。

如果您希望 obj2.name 成为一个属性,那么在更改 obj1.name 之后,您需要一些东西来监视它并更新 obj2.name。所以它可能更容易使用一种方法。

let obj1 = {
name: function() { return 'original'; }
}
let obj2 = {
name: function() { return obj1.name() }
}

关于javascript - 如何修改对匿名函数的所有引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62419808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com