首先,我并不清楚这个对象的类型(也许是 NativeArray ?)。对我来说,ember 通过将 NativeArray mixin 应用到 Array.prototype 来使用一些 mixin 覆盖默认的 javascript 数组。
也就是说,在我的代码中,我想通过允许进行这种覆盖:
["a", "b", "a"].count("a") // returns 2
我试图重新打开 Enumerable Mixin (对我来说这是这种功能的正确位置)
我确定在使用 count() 方法之前执行了重新打开代码。但是我遇到了这个错误:
Object has no method count().
阅读代码似乎我必须将 mixin 重新应用于 Array.prototype,但不幸的是,什么都不做Ember.Enumerable.apply(Array.prototype)
。
更新: 看了一些文章后,我开始了解原型。我可以将函数添加到数组中:
Array.prototype.newFunc = function () {
console.log('bla');
}
但就我而言,这并不令人满意,例如,一个 MutableArray 将能够调用newFun()
也许做我想做的唯一方法是制作一个 PR 以将我的计数方法包含到 Enumerable Mixin 中。
欢迎任何其他建议:)