为什么使用jQuery数据来存储变量而不是普通的JavaScript对象?

时间:2011-03-15 09:00:12

标签: javascript jquery

当我可以在普通的javascript对象中存储变量时,使用data method有什么好处吗?在我看来,使用jQuery数据方法是性能降级,如果它意味着重新查找DOM元素以检索键的值,如果之前没有引用DOM元素?

很抱歉,如果这对javascript开发者来说非常明显,但我希望能够完全理解这一点。

3 个答案:

答案 0 :(得分:3)

这只是一个方便的例子,它取决于您是否使用数据功能的实现。当您想要存储特定DOM元素的相关值,或者更可能是DOM元素的“集合”时,通常会使用.data()。通常,在迭代元素并根据值做出决策或执行操作时,您通常会检索这些值。即使您要检索一个值 - 如果您缓存了jQuery DOM元素,那么检索附加值也是一种便宜的调用。

答案 1 :(得分:1)

因为您无法使用“普通javascript对象”轻松存储与某个DOM元素相关的数据。如果您的数据与某个DOM对象无关,那么您当然不应该使用$.data

答案 2 :(得分:0)

我想。

在使用数据时,DOM元素可以和之前应该被引用,这不会导致性能损失(我们仍然保持DOM_Element-key-value关系)。

因此,在存储键值时初始查找“body”是唯一的性能成本,后续数据检索不必再次找到“body”:

b = $('body');
b.data('key', 'value');
alert(b.data('key'));