Backbone.js 主干扩展和调用功能

Backbone.js 主干扩展和调用功能,backbone.js,Backbone.js,我想我误解了一些范围问题。 我正在运行TODO主干应用程序,在“new app.AppView();”之后 我正在尝试: app.AppView.render() 以及我认为正在扩展的其他功能,但它们似乎不可用 第二个问题是..为什么chrome开发者工具在TODORouter和Todos旁边写着“child” 编辑 待办事项链接 这是我主要参考的代码 $(function() { // Kick things off by creating the **App**. new

我想我误解了一些范围问题。 我正在运行TODO主干应用程序,在“new app.AppView();”之后

我正在尝试: app.AppView.render()

以及我认为正在扩展的其他功能,但它们似乎不可用

第二个问题是..为什么chrome开发者工具在TODORouter和Todos旁边写着“child”

编辑 待办事项链接

这是我主要参考的代码

$(function() {

    // Kick things off by creating the **App**.
    new app.AppView();

});

在var中保存新的appview,然后从那里使用它

var myAppView = new app.AppView();
// ...
myAppView.render();

您没有范围界定问题,但有点“处理javascript”问题

app.AppView
中存储了一个名为
AppView
函数
-对象。在javascript中,函数在名为原型继承的系统中用作“类”(不要考虑Java类!)。现在还不要卷入其中

当你打电话的时候

new app.AppView()
app.AppView.render()
您可以为这个
AppView
“类”创建一个新的
实例,它是一个对象。所以当你打电话的时候

new app.AppView()
app.AppView.render()
您试图调用“class”(或class-but-not-quite-a-class)的函数render。现在这一点都不对

因此(就像在Java或任何其他oo语言中一样),您必须通过调用变量的构造函数来存储获得的实例

var appView = new app.AppView();
现在您有了一个实例,您可以用它做任何您喜欢的事情

appView.render();

很好,为什么?我确信这是我不知道的基本js。如果这些对象在初始加载后仍然可用,那么为什么扩展功能不可用?还有第二个问题?开始吧……但是stock TODO代码没有创建AppView的命名实例,那么在呈现所有内容之后,它如何访问这个(new app.AppView())视图呢?也许你应该发布一个指向这个TODO教程的链接