我不认为jQuery有Hash类,那么是否有等价的?
我一直认为Object无论如何都能很好地散列东西。那么除了一些实用方法之外,MooTool的哈希值有什么特别之处呢?
答案 0 :(得分:4)
我无法完全回答你的问题,因为我对jquery几乎一无所知,但我会尝试在mootools中解释哈希,以便你可以尝试自己找到合适的解决方案
基本上,mootools哈希的最好的部分是能够原型化对象,因此它们可以支持/继承常用方法(你不能在普通对象上做)。 例如,通过哈希返回对象密钥的方法是var keys = new Hash({foo:'bar'}).getKeys();
所以除了通过框架(http://mootools.net/docs/core/Native/Hash)继承内置方法之外,您还可以通过Hash.implement原型化哈希本地来定义自己的方法:
Hash.implement({
ismoo: function() {
return this.hasValue("moo");
}
});
var f = new Hash({foo:'moo',moo:'cow'});
alert(f.ismoo());
我无法告诉你的是如何在jquery中复制这样的功能 - 你可以扩展jQuery,我想通过iirc $.fn.hasValue = function() { ... };
或者无论语法是什么。
无论如何 - 底线是,mootools.Hash没有做任何你不能以不同的方式做自己的事情,它只是做得很方便:)
答案 1 :(得分:1)
MooTools和jQuery不是互斥的。
大多数MooTools的通用编程模块都不属于jQuery范围。 jQuery完全可以与其他通用编程工具和框架配合使用。
MooTools非常模块化。您可以轻松使用MooTools' Core Builder 构建自定义MooTools构建,仅使用哈希。我尝试了它,它在YUI压缩下大约6k(gzip更少)。
如果出于某种原因,您希望完全重写代码以删除所有Hash痕迹,则可以使用自定义构建作为一种权宜之计。提前发布并经常发布!
答案 2 :(得分:0)
这篇文章的后期,但对于现在发现这一点的人来说,有一个插件将自己描述为“MooTools的哈希(来自mootools-more)对象/本机的jQuery”。