访问Ember.js对象中的父构造函数

时间:2015-01-15 19:33:36

标签: javascript ember.js

在Ember.js中,如何访问父对象构造函数?我在寻找时发现了这一点:

this.__ember_meta__.proto.__proto__.__proto__.constructor

这会产生正确的值,但由于明显的原因,这是不可接受的。

查看extend()方法中的代码,看起来它将父类分配给名为superclass的属性,但由于某种原因我在类中没有看到它。

1 个答案:

答案 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;

观察:http://jsfiddle.net/99gvpqzx/1/