4

ExtJS には Ext.each() 関数がありますが、map() もどこかに隠されていますか?

私は懸命に努力しましたが、この役割を果たすことができるものを見つけられませんでした. Ext のような大規模な JS ライブラリが明らかに備えなければならないのは、単純で些細なことのようです。

または、Ext に実際に含まれていない場合、Ext に追加する最善の方法は何でしょうか。もちろん、次のように書くこともできます。

Ext.map = function(arr, f) { ... };

しかし、これは本当にこれを行う正しい方法ですか?

4

5 に答える 5

3

少なくともExt4の時点で、Ext.Array.mapが含まれています。

http://docs.sencha.com/extjs/5.0.1/#!/api/Ext.Array-method-map

于 2012-04-04T14:09:25.103 に答える
2

何よりもユーティリティであるためmap、Ext 名前空間にプラグインする特別な方法がある理由がわかりません。あなたが提案した方法は十分にうまくいきますが、次のようにしたいかもしれません:

if(Ext && typeof(Ext.map) == "undefined") { // only if Ext exists & map isn't already defined
   Ext.map = function(arr, f) { ... };
}

それでよさそうですが、ExtJSは使ってないのでわかりません。私は彼らのドキュメントをざっと見ましたが、この場合、特別なことは何もないようです。

于 2008-10-30T20:40:32.753 に答える
2

ここの私の大学は、ext-basexを使用しているようです。これは、 Array.prototype を map() およびその他のメソッドで拡張します。

だから私はただ書くことができます:

[1, 2, 3].map( function(){ ... } );

問題が解決しました。

于 2008-10-30T22:54:53.807 に答える
1

Ext+Prototype や Ext+Jquery などのハイブリッド ライブラリの 1 つを使用するのはどうでしょうか。私はしばらくの間 Extjs+Prototypejs を使用してきましたが、Extjs コードを操作するのに非常に役立ちました。より使い慣れたプロトタイプ js を一緒に使用することもできます。

http://extjs.com/products/extjs/build/ は、extjs と (prototypejs|jquery|yahooUI) を実行するために必要なすべてのファイルのカスタム tar/zip ファイルをビルドします。

于 2008-10-31T16:53:29.227 に答える
0

ExtJS は Javascript 言語自体を置き換えるものではありません。配列関数は、ExtJS コアの焦点では​​ありません。ただし、特別な Ext.Array オブジェクト型があります。自分で延長できます。

編集: Ext.Array ではなく、単に拡張された Array オブジェクトです。

于 2008-10-30T23:40:47.537 に答える