在尝试访问确实存在但在运行时不存在的对象变量时,我遇到了 JavaScript 的一些奇怪行为。
以下显示了我尝试访问的对象的启动:
app.examView = new app.ExamView({el: $("#main_wrap"), model: model});
这是定义和对对象创建的调用,我试图在其中访问 app.examView 变量。
app.ExamView = Backbone.View.extend({
initialize: function(){
this.render();
this.calculatorView = new app.ExamCalculatorView({el: $("#exam_calculator_container"), model: this.model});
this.questionView = new app.ExamQuestionView({el: $("#exam_question"), model: this.model});
在此处记录 examView 变量返回未定义:
var app = app || {};
app.ExamQuestionView = Backbone.View.extend({
initialize: function(){
console.log(app.examView);
尽管如此,该对象可以通过控制台访问:
任何帮助将不胜感激。
最佳答案
我假设您的 Backbone View 在 DOM 准备好之前就调用了 render()
。您的代码是否包含在 $(document).ready()
中?
“奇怪的行为”是因为该元素在 DOM 完成后才可用。
关于JavaScript 对象变量在运行时未定义,但可以访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781250/