gpt4 book ai didi

Javascript 属性镜像到另一个实例

转载 作者:行者123 更新时间:2023-11-30 18:14:37 32 4
gpt4 key购买 nike

假设我们在 Javascript 中有这样的东西:

obj1.prop1.prop1_1.prop1_1_1 = 3;

调用此方法时,我希望在同一树位置设置值 3,但在 obj2 中,就好像我调用了:

obj2.prop1.prop1_1.prop1_1_1 = 3;

所有这些都带有 obj2 最初未填充 prop1.prop1_1.prop1_1_1 的约束。

我想第一步是覆盖 obj1.prop1,以便它返回 obj2.prop1。但是 obj2.prop1 需要分配给与 obj1.prop1 相同类型的实例。我们怎样才能做到这一点?

最佳答案

如果我没理解错的话,obj1.prop1.prop1_1obj2.prop1.prop1_1 不是同一个对象,您要设置 prop1_1_1 为前者设置相同的属性,为后者设置相同的属性。

这对于 property getters and/or setters可能的从 ES5 开始,但我认为我不会推荐它。 :-)

这是一个示例,其中 obj2.prop1.prop1_1.prop1_1_1 上的 getter 从 obj1 获取值:

var obj1 = {
prop1: {
prop1_1: {
prop1_1_1: 42
}
}
};
var obj2 = {
prop1: {
prop1_1: {
}
}
};
Object.defineProperty(obj2.prop1.prop1_1, "prop1_1_1", {
get: function() {
return obj1.prop1.prop1_1.prop1_1_1;
}
});
console.log("obj1.prop1.prop1_1.prop1_1_1 = " + obj1.prop1.prop1_1.prop1_1_1); // 42
console.log("obj2.prop1.prop1_1.prop1_1_1 = " + obj2.prop1.prop1_1.prop1_1_1); // 42
obj1.prop1.prop1_1.prop1_1_1 = 3;
console.log("obj1.prop1.prop1_1.prop1_1_1 = " + obj1.prop1.prop1_1.prop1_1_1); // 3
console.log("obj2.prop1.prop1_1.prop1_1_1 = " + obj2.prop1.prop1_1.prop1_1_1); // 3

Live Copy (查看控制台) | Source

关于Javascript 属性镜像到另一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13628951/

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