在Ember.js中,如何访问父对象构造函数?我在寻找时发现了这一点:
this.__ember_meta__.proto.__proto__.__proto__.constructor
这会产生正确的值,但由于明显的原因,这是不可接受的。
查看extend()
方法中的代码,看起来它将父类分配给名为superclass
的属性,但由于某种原因我在类中没有看到它。
答案 0 :(得分:1)
查看definition of the extend
method,您可以看到它构建并返回名为Class
的变量。您应该将您的方法描绘为在Class
的实例上运行(意味着this.prototype === Class.prototype
)。
考虑到这一点,您可以看到此Class
本身已分配给Class.prototype.constructor
:
proto = Class.prototype = o_create(this.prototype);
proto.constructor = Class;
因此,您可以使用Class
访问此this.constructor
,此外,父类的构造函数(如您所述)被分配给.superclass
的{{1}}属性:< / p>
Class
所以我相信你寻求的答案很简单:
Class.superclass = this;