mootools 1.2.5 doc: 設定、取得、または繰り返し時にプロトタイプを考慮しないカスタムオブジェクト({})実装。 JavaScriptではObject.prototypeを使用できないので便利です。代わりに、我々はHash.prototypeを使うことができます!mootoolsのハッシュを理解していません
しかし、私はそれを理解していません。私にハッシュの恩恵をどのように与えることができるかを示すいくつかの例を教えてください。
mootools 1.2.5 doc: 設定、取得、または繰り返し時にプロトタイプを考慮しないカスタムオブジェクト({})実装。 JavaScriptではObject.prototypeを使用できないので便利です。代わりに、我々はHash.prototypeを使うことができます!mootoolsのハッシュを理解していません
しかし、私はそれを理解していません。私にハッシュの恩恵をどのように与えることができるかを示すいくつかの例を教えてください。
まず、Hash
は、MooTools 1.3でObject
を推奨しています。
MooTools Object
は、非常に有用な方法をObject
に追加します。 prototypes
に関する情報は、高度な使用に関連していますが、MooTools Object
を使用すると、ほとんどの場合、それを心配する必要はありません。
ここで有用な方法のMooToolsはの一部であるがObject
に追加:
// each
// alerts 'The first day of the week is Sunday',
// 'The second day of the week is Monday', etc.:
Object.each(
{first: 'Sunday', second: 'Monday', third: 'Tuesday'},
function(value, key){
alert('The ' + key + ' day of the week is ' + value);
});
// map
var myObject = {a: 1, b: 2, c: 3};
var timesTwo = Object.map(timesTwo, function(value, key){
return value * 2;
}); // timesTwo now holds an object containing: {a: 2, b: 4, c: 6};
// filter
var myObject = {a: 10, b: 20, c: 30};
var biggerThanTwenty = Object.filter(myObject, function(value, key){
return value > 20;
}); // biggerThanTwenty now holds an object containing: {c: 30}
(上記実施例および多くMooTools docsから)MooToolsのはハッシュを非推奨1.3からのものである例を提供してきた@bowsersenior
Object型を拡張することに賛成ですが、1.2.5ドキュメントについて話しているので、とにかく返信します。
1.2xのHashについて最も有用なことは、がのプロトタイプ化されたオブジェクトのような構造を作成できることでした。
私は戻って同様の例を挙げ、件名にしばらく答え:Is there an jQuery equivalent of MooTools Hash?
を、それが互換モードO/W 1.3に来るとき、あなたはまだ代わりにObject.implement()
を経由して、カスタムオブジェクトのメソッドを定義することができますが、それはそのthis
で少し違うですオブジェクトではなく、常にObject.yourCustomMethod(yourobj, callbackFunction)
への呼び出しが必要です。
実装方法がObject.prototypeであるため、ハッシュが存在したのは、アプリケーションが破損する可能性があるためです。
ハッシュには、例えば、Hash.prototypeを使用することが可能になった:
new Hash({my: 'nice', literal: 'object'}).filter(someFunction).map(function(value){
return value + ' sfsdf ';
}).getValues();
あなたが実際にHash.prototypeにメソッドを追加している、あなた自身のメソッドを追加するHash.implement
を使用することができます。
Object.keysのような多くのObject。*関数を持つ新しいECMAScript 5仕様では、MooTools 1.3ではハッシュの代わりにこれらの関数を使用するようになったためです。
var obj = {my: 'nice', literal: 'object'}
Object.values(Object.map(Object.filter(obj, someFunction), function(value){
return value + ' sfsdf ';
}));
たぶん、もう少し詳細なこの例では、しかし、ES5に沿って、より多くの。 Hashが本当に好きな人は、MooTools More 1.3でこれを使うことができます。
ので、あなたは上記の正確オブジェクトの例のようにハッシュを使用することができます注:
var values = Hash.getValues({my: 'nice', literal: 'object'});