入门指南 获取Ember 概念 对象模型 应用 模板 路由 组件 控制器 模型 视图 枚举 测式 配置Ember.js COOKBOOK 理解Ember.js

发布于 2015-08-18 16:28:11 | 427 次阅读 | 评论: 0 | 来源: 网络整理

Ember.js的类不需要一次性完成所有的定义。可以通过reopen方法重新打开一个类来定义新的属性。

 
1
2
3
4
5
Person.reopen({
  isPerson: true
});

Person.create().get('isPerson') // true
 

当使用reopen时,还可以重写已有的方法。在重写的方法中可以通过this._super来调用被重写的方法。

 
1
2
3
4
5
6
Person.reopen({
  // 在末尾加 ! 来重载 `say`
  say: function(thing) {
    this._super(thing + "!");
  }
});
 

reopen用来添加被所有类的实例共享的实例方法和属性。它不能像Vanilla Javascript那样,用来为某一特定的实例来添加方法和属性(不使用prototype)。

但是如果需要为类添加方法和属性,则可以使用reopenClass方法。

 
1
2
3
4
5
6
7
Person.reopenClass({
  createMan: function() {
    return Person.create({isMan: true})
  }
});

Person.createMan().get('isMan') // true
 
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务