javascript - Backbone.js 中的 window.ViewName 和 ViewName 有什么区别?

标签 javascript backbone.js

首先,我是 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/

相关文章:

javascript - 使用JS移动div内的div

javascript - 如何将 id 添加到 .before 函数中的段落元素?

html - Bootstrap Navbar-固定底部粘性页脚

javascript - Backbone 路由器忽略搜索路由

node.js - 集合和 View 在 Backbone 脚本中不起作用?

javascript - Commander-js 的强制参数

javascript - 如何在一个 gulp 任务中运行多个操作?

javascript - Internet Explorer 将 e.which 显示为未定义

backbone.js - 主干 : firing an event only once on a Collection 'change'

javascript - 主干设置方法,传递一个变量作为键?