从实例中获取Backbone View的Parent类

时间:2012-06-19 20:20:25

标签: javascript oop backbone.js

我正在实现一个系统,我在其中管理视图切换,以便在呈现另一个视图之前清除该视图所承载的任何事件。但是,我需要使用视图实例在数组中查找视图。如何获取视图实例的视图类?

例如:

var myView = new MyView;
return myView.parent(); // this should return MyView

谢谢!

2 个答案:

答案 0 :(得分:3)

听起来你正在寻找constructor财产:

  

返回对创建实例原型的Object函数的引用。

所以,如果你这样做:

var v = new View;

然后v.constructor将是View。如果你这样做:

var views = [
    Backbone.View.extend({}),
    Backbone.View.extend({}),
    Backbone.View.extend({})
];

var v = new views[1];
for(var i = 0; i < views.length; ++i)
    if(v.constructor === views[i])
        console.log(i)

您将在控制台中获得1。演示:http://jsfiddle.net/ambiguous/EgURK/

答案 1 :(得分:-1)

我解决这个问题的方法是传入this作为构造函数的一部分,并在视图中设置一个“实例变量”。

然后,您将使用名称“parent”连接一个getter函数,将其返回给您的示例代码:

var myView = new MyView( this );
return myView.parent();