2

我刚刚尝试过reopenClass(),但看到坚持认为它没有这些功能extend(),我有点惊讶。Em.String

我也尝试过reopen(),但以同样的方式失败了。

如果不需要,我不想使用原型,因为我想保持Ember 方式

4

2 回答 2

3

Ember.String只是带有几个实用函数的哈希,请参见此处https://github.com/emberjs/ember.js/blob/v1.0.0-rc.4/packages/ember-runtime/lib/system/string.js# L24。Ember 扩展了String.prototype添加这些实用功能。

我猜你除了扩展原版以获得 ember 未提供的额外功能外别无他String.prototype法,你的功能将与 ember 一起使用。

来自文档的注释:定义字符串辅助方法,包括字符串格式化和本地化。除非 Ember.EXTEND_PROTOTYPES.String 为 false,否则这些方法也将添加到 String.prototype 中。

希望能帮助到你

于 2013-05-31T10:58:08.130 回答
3

EmberString.prototype在此时扩展至最新提交 - https://github.com/emberjs/ember.js/blob/632191f09770113cdc84ffd6e080315ab57c3f65/packages/ember-runtime/lib/ext/string.js#L21

插入的所有函数String.prototype都是硬编码的,所以添加任何东西Ember.String都不会Ember.js添加String.prototype,所以唯一的方法是自己直接向字符串添加方法。

于 2013-05-31T11:07:29.617 回答