首先,我是 JavaScript 菜鸟,甚至是 Backbone.js 菜鸟。
我正在学习一些在线教程来熟悉该技术;并在 some tutorials 中我看到了这个:
Person = Backbone.Model.extend({
initialize: function(){
alert("Welcome to this world");
}
});
var person = new Person;
在 other ones我发现这个符号:
window.WineView = Backbone.View.extend({
initialize:function () {
this.model.bind("change", this.render, this);
}
});
在 View 名称中添加“window”有什么必要?我读了一些JavaScript documentation这表明 window
对象代表当前浏览器窗口,那么我们是否将创建的 View 添加为该对象的属性?作者为什么要这么做?
最佳答案
在浏览器 JavaScript 中,window
是全局对象,因此 window.Person === Person
除非在某个位置定义了 Person
作用域链(function() { var Person; ... }
)。
换句话来说,没有什么区别。 (除了使用 7 个额外字符之外。)
您可能想阅读 JS scope 。具体来说,如果您分配给一个 undefined variable (Person = { ... };
),该变量将被分配给全局对象 (window
)。但是,如果您首先声明一个变量 (var Person = { ... };
),则该变量将被分配到本地范围。
关于javascript - Backbone.js 中的 window.ViewName 和 ViewName 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953335/