是否可以创建一个对象,该对象是另一个对象的子集,而不会丢失javascript中的引用
Is it possible to create an object that is a subset of another object without losing the references in javascript?
我在javascript中有一个对象,它有一堆我需要的数据。我希望能够创建第二个对象,该对象包含第一个对象的数据子集,而不会丢失引用。例如:
var test1 = {foo: 'foo', bar: 'bar'};
var test2 = {foo: test1.foo};
不幸的是,以这种方式创建test2-to会丢失引用,并且test2.foo绑定到值"foo",而不是绑定到值"foo"的引用。这意味着属性foo在两个对象之间不保持同步。
test1.foo = 'new value';
test2.foo; // <= 'foo'
我尝试了很多方法,但都没有成功。我不确定语言是否支持这一点,但也许有人有一个聪明的方法来实现这一点。
好的。我对这个问题有一个很好的解决方案。所有的功劳都归功于@Alexei Levenkov,他提出了使用getter和setter的建议。
var test1 = {foo: 'foo', bar: 'bar'};
var test2 = {get foo(){return test1.foo;}, set foo(x){test1.foo = x;}};
通过使用getter和setter,test1.foo和test2.foo将保持同步。
test1.foo = 'new value';
test2.foo; // <= 'new value'
test2.foo = 'new new value';
test1.foo; // <= 'new new value'
超级傻瓜!!!
相关文章:
- 是否可以创建一个对象,该对象是另一个对象的子集,而不会丢失javascript中的引用
- 如何将对象引用传递到 mootools 中另一个对象的构造函数中
- 引用另一个对象javascript中的对象
- 如何将一个单例传递给另一个对象,使该对象的所有实例都引用同一个单实例
- 将引用一个对象存储到Mongoose和MeanJS中
- 在 javascript 中通过引用传递一个对象参数
- Javascript 此关键字引用另一个对象
- 在Javascript中声明一个对象上的方法时,如何正确引用该对象上的一个方法集
- 与许多事件侦听器和函数引用一个对象相比,什么是更好的方法
- 如何引用另一个对象's在javascript中的属性
- 为什么在控制台上记录对象引用时会显示一个整数
- 我怎么能传递一个函数,它有一个对象的引用,在Javascript中传递函数
- 字符串化一个循环引用对象的浅拷贝
- 我需要在对象中设置json对象属性,然后从同一对象中的另一个对象引用该属性
- 在另一个对象中引用Javascript对象
- 绑定一个对象通过引用花式树源,是可能的
- 在另一个对象中引用一个javascript对象
- 如何让javascript对象的一个成员引用同一对象的另一个成员
- 在JQuery中,将一个对象数组复制到另一个数组是它的引用类型
- 如何用jQuery传递一个对象引用到一个函数