javascript - Ember.js 在哪里调用 this._super( )

  显示原文与译文双语对照的内容
0 0

我一直以为都要经过Ember文档和看到的不一致的地方 _super方法被调用当重写 init.

这是最常见的,就是我到目前为止一直使用

var Foo = Em.Object.extend({
    init: function(){
        this._super();
        // ... my stuff ...
    }
});

昨晚我通读此写入向上,看到这样一个例子

var Bar = Em.Object.extend({
    init: function(){
        // ... my stuff ...
        return this._super();
    }
});

它实际上是一个 Ember.ContainerView在代码段中。

谁能解释一下这是怎么回事? 我的代码OCD故障或者我不能继续,直到我知道

时间:原作者:1个回答

0 0

文档中的链接

 init: function() {
    var childViews = this.get('childViews');
    var descriptionView = App.DescriptionView.create();
    childViews.pushObject(descriptionView);
    this.addButton();
    return this._super();
  },

_super()再调用descriptionView被创建并推入 childViews数组中。

那是因为超类 init实现是想靠childViews数组和用它做东西。 如果你打电话给 _super之前添加 descriptionView到数组,那就不会有任何处理的 init并。。。。

我推断,但这就是事实在Sproutcore,Ember从中派生,因此我想这可能是相同的。

原作者:
...