我有一个对象,声明如下(它的值是一个全局变量):
var example = {
"foo": window.bar
}
执行其他方法之后的步骤,并且这个值会发生变化,但是如果我想在对象中使用这个值,这就是undefined
。
侦听器似乎只属于DOM元素,而不是值,有一种方法可以将对象中的值绑定到变量或更新对象中的值?
下面是我想要实现的一个例子:https://jsfiddle.net/ptbqqk6o/2
提前感谢
发布于 2017-08-01 10:06:16
当您执行对example
的赋值时,example
是未定义的:window.bar
的值在那个时刻被解析,在您的情况下还不存在,.所以undefined
。
如果您想要维护对将来可能发生变化的对象的引用,那么首先定义window.bar
,然后再分配给example
,然后将它定义为一个对象。然后,永远不要将一个值重新分配给window.bar
,而是只修改它:这样,引用将保持共享:
window.bar = {}; // An object, for later mutation.
var obj = {
foo: window.bar // a reference to the above object
}
window.bar.message = "this works!";
console.log(obj.foo);
发布于 2017-08-01 10:03:17
在你小提琴里的密码里:
var json = {
foo : window.bar
}
window.some = 'bar';
alert(json.foo);
在构造jsonExample对象时,还没有设置window.bar的值。因此,jsonExample.foo被设置为未定义。试试这个:
window.bar = 'bar';
var json = {
foo : window.bar
}
alert(json.foo);
https://stackoverflow.com/questions/45444692
复制相似问题