从实例获取主干视图的父类

Get a Backbone View's Parent class from an instance

本文关键字:视图 父类 实例 获取      更新时间:2023-09-26

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

例如:

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

谢谢!

听起来你正在寻找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/

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

然后,您将连接一个名为"parent"的 getter 函数,以像您的示例代码一样返回它:

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