我最近想知道这是否可能:将对象传递给函数并在该函数内部用完全不同的对象覆盖整个对象,以便永久修改其值。由于对象是通过引用传递的,我觉得它必须以某种方式工作,但我不知道如何。要将其放入代码中,它应该执行以下操作:
function a() {
console.log("i am a");
}
function b() {
console.log("i am b");
}
function override(func1, func2) {
func1 = func2;
}
override(a, b);
a(); //"i am b" expected
这显然不起作用,因为我只是覆盖了变量func1
,但我认为你明白了。我选择使用函数而不是纯对象,因为您可以轻松地“覆盖”一个对象,只需删除它的属性并从第二个对象复制新属性。但这不是我想要的。
在你问之前,我并不是想用这个来解决任何现实生活中的问题,我只是出于好奇而问。那么有没有办法实现这一目标,如果没有,是否有理由不这样做?
谢谢!