Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象存在,但调用键时返回未定义的_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript对象存在,但调用键时返回未定义的

Javascript对象存在,但调用键时返回未定义的,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我不是在问问题,因为我终于解决了它,但我会发表它,因为我花了3个多小时试图弄明白它 形势 我正在开发一个Chrome扩展,希望允许用户通过“options.html”页面更改Chrome设置 扩展将当前配置作为对象加载options.js: 让myConfiguration=newobject() myConfiguration=getCurrentConfig() 如果在我的options.js中调用变量myConfiguration,我会得到一个空对象: console.log(myCon

我不是在问问题,因为我终于解决了它,但我会发表它,因为我花了3个多小时试图弄明白它

形势

我正在开发一个Chrome扩展,希望允许用户通过“options.html”页面更改Chrome设置

扩展将当前配置作为对象加载
options.js

让myConfiguration=newobject()
myConfiguration=getCurrentConfig()
如果在我的
options.js
中调用变量
myConfiguration
,我会得到一个空对象:

console.log(myConfiguration)
//输出:{}
如果我从devtools调用变量,我会得到以下对象:

console.log(myConfiguration)
//输出:{key1:value1,key2:value2,…}

这让我发疯。请参阅下面的答案。

解决方案

问题是,当我从
options.js
文件调用变量时,它仍然没有被赋值。但是当我检查devtools上的控制台时,我的变量有一个赋值

解决方案是调用从新的“js”文件中为变量赋值的函数,并将该文件放在
options.html
页面的de body标记之前


我希望这能帮助人们避免花3个小时玩弄javascript代码。

解决方案

问题是,当我从
options.js
文件调用变量时,它仍然没有被赋值。但是当我检查devtools上的控制台时,我的变量有一个赋值

解决方案是调用从新的“js”文件中为变量赋值的函数,并将该文件放在
options.html
页面的de body标记之前


我希望这能帮助人们避免花3个小时玩弄javascript代码。

控制台是异步的。这是一个令人困惑的概念。但本质上,当您控制台记录一个对象时,您的日志记录就是一个引用。当您的浏览器开始显示日志时,它会在该点评估对象的内容,这至少是一个完整的事件循环。提示如何构造这个问题。删除解决方案部分,并将其放在答案中。您可以回答自己的问题。欢迎来到StackOverflow亲爱的@Vitrvm,请提问并删除解决方案部分。谢谢您的帮助。将在今天下午修复问题/答案。控制台是异步的。这是一个令人困惑的概念。但本质上,当您控制台记录一个对象时,您的日志记录就是一个引用。当您的浏览器开始显示日志时,它会在该点评估对象的内容,这至少是一个完整的事件循环。提示如何构造这个问题。删除解决方案部分,并将其放在答案中。您可以回答自己的问题。欢迎来到StackOverflow亲爱的@Vitrvm,请提问并删除解决方案部分。谢谢您的帮助。我将在今天下午解决这个问题/答案。