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