使用Javascript或jQuery将值全局变量绑定到对象

时间:2017-08-01 17:56:05

标签: javascript jquery

我有一个声明如下的对象(它的值为全局变量):

var example = {
    "foo": window.bar
} 

执行其他方法后的步骤,此值会更改,但如果我想使用对象中的值,则为undefined

侦听器似乎专门针对DOM元素而不是值,有一种方法可以将对象的值绑定到变量或更新对象中的值的内容?

这里是我想要实现的一个例子:https://jsfiddle.net/ptbqqk6o/2

提前致谢

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);