有人可以解释为什么控制台会这样吗?
我曾经发布过这个问题,但我不能完全正确地制定它,所以我再次关闭它。最初的问题没有提到问题可能与控制台有关,我只是质疑变量的奇怪行为。我基本上只发布了以下截图:
请注意,我$s.page
在第 20 行登录并且$s.page.navi
在那里,而在第 21 行,当我再次登录时它就消失了。
重新打开问题
没有人可以给出答案,尽管@zerkms暗示这可能与控制台本身有关。在我关闭问题后,他通过这篇文章与我联系:只有当我真正需要它们以重新打开问题时才加载我的文件。
问题
足够的介绍,回到问题。那么变量去哪了。从我发布的另一个问题中,您可以看到我使用 require.js 来加载我的文件。我对这一切有点陌生,所以我的问题与它有关。
在$s.page
我的代码中执行以下操作(简化):
require(['nav'], $.proxy(function(Nav){
this.navi = new Nav.Views.Main();
}, this));
nav
是 require.js 必须加载的模块。我脚本会阻塞,直到文件在那里,并查看控制台确认了这一点。
让我更详细地登录:
console.log('x');
require(['nav'], $.proxy(function(Nav){
console.log('y');
this.navi = new Nav.Views.Main();
}, this));
我将其他日志留在原处,这是输出:
请注意,x
首先记录。然后当我登录$s.page
时,它$s.page
会告诉我未来会是什么样子,我猜。真的很奇怪。
然后当我登录$s.page.navi
下一行时,它不存在,这是正确的。
然后在最后,甚至不再被召唤,y
加入了聚会。