我有一个声明如下的对象(它的值为全局变量):
var example = {
"foo": window.bar
}
执行其他方法后的步骤,此值会更改,但如果我想使用对象中的值,则为undefined
。
侦听器似乎专门针对DOM元素而不是值,有一种方法可以将对象的值绑定到变量或更新对象中的值的内容?
这里是我想要实现的一个例子:https://jsfiddle.net/ptbqqk6o/2
提前致谢
答案 0 :(得分:2)
example.foo
的赋值, example
就不会被定义:window.bar
的值在那个时刻得到解决,在你的情况下还不存在,...那么undefined
。
如果您希望以后维护对 mutate 的对象的引用,请在分配到window.bar
之前先定义example
,并将其定义为一个东西。然后,永远不要将值重新分配给window.bar
,而只是 mutate :这样引用将保持共享:
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);
答案 1 :(得分:0)
在小提琴的代码中:
var json = {
foo : window.bar
}
window.some = 'bar';
alert(json.foo);
构造jsonExample对象时,尚未设置window.bar的值。因此jsonExample.foo设置为undefined。试试这个:
window.bar = 'bar';
var json = {
foo : window.bar
}
alert(json.foo);