我的任务是维护一些使用大量PrototypeJS的传统前端代码。我对他们在代码中使用的一些东西感到困惑。例如,the documentation描述了这个$H
函数,用于创建“哈希”并以“经典哈希方式”访问其中的属性,这似乎是一个简单的obj.get('propName')
。
var h = $H({name: 'John', age: 26, country: 'Australia'});
// Equivalent to:
var h = new Hash({name: 'John', age: 26, country: 'Australia'});
// Can then be accessed the classic Hash way
h.get('country');
// -> 'Australia'
为什么这有用?我看到它使用了我正在维护的所有代码,最后决定我需要了解最初的意图是什么好一点。
答案 0 :(得分:2)
由于JavaScript的本质,每个对象实际上都是一个哈希;但是
Hash
添加了许多方法,可以枚举键和值,迭代键/值对,将两个哈希合并在一起等等。
所以,基本上是因为你可以使用keys
,values
,each
,merge
,update
等。
答案 1 :(得分:1)
“经典哈希”通常很有用,因为它提供快速键值对查找。在计算机科学术语中,算法复杂度是恒定的,或O(1)。这意味着您可以立即获取散列中任何键的值。在示例哈希中,键是:name,age,country
所以你可以通过调用h.get('name')快速获得名字(John),你可以通过调用h.get('age')快速获得他的年龄(26),你可以很快得到他的country(Australia),致电h.get('country')。
将此数据与您必须迭代的列表中存储此数据进行比较,以查找名称,年龄和国家/地区的值。