コンソールがこのように動作する理由を誰か説明できますか?
この質問を一度投稿しましたが、正しく定式化できなかったため、再度閉じました。最初の質問では、問題がコンソールに関連している可能性があるとは言及されていませんでした。変数の奇妙な動作について質問しただけです。基本的に、次のスクリーンショットのみを投稿しました。
ここで、$s.page
20行目にログオンして$s.page.navi
そこにあり、21行目に再度ログオンすると消えていることに注意してください。
質問の再開
@zerkmsは、コンソール自体に関係がある可能性があると示唆しましたが、答えられる人は誰もいませんでした. 私が質問を閉じた後、彼は次の投稿で私に連絡してきました。
問題
序論は十分にして、問題に戻ります。では、変数はどこに行ったのでしょうか。私が投稿した他の質問から、require.js を使用してファイルをロードしていることがわかります。私はこれに少し慣れていないので、私の問題はそれに関連していました。
Iのコードで$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
パーティーに参加。