我正在实现一个系统,我在其中管理视图切换,以便在呈现另一个视图之前清除该视图所承载的任何事件。但是,我需要使用视图实例在数组中查找视图。如何获取视图实例的视图类?
例如:
var myView = new MyView;
return myView.parent(); // this should return MyView
谢谢!
答案 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();