Лучше именно из-за того, что говорится в цитате, которую вы дали: "безопасно от циклических ссылок".
Скажем, у вас есть переменные nodeOne
и nodeTwo
, которые ссылаютсяnode.
Допустим, вы поместили это в функцию (чью ссылку вы не сохраните):
jQuery.data(nodeOne, 'item', nodeTwo);
jQuery.data(nodetwo, 'item', nodeOne);
После запуска функции есть циклическая ссылка: для nodeOne есть ссылка наnodeTwo и наоборот.
Используя jQuery.data, эта циклическая ссылка не помешает сборке мусора для этих двух переменных.
Однако, если бы вы делали то же самое, но без с использованием jQuery.data переменные nodeOne
и nodeTwo
не будут собирать мусор, даже если переменные больше не нужны.
-
Должен ли я ВСЕГДА отдавать предпочтение .data () вместо использования в любом случае расширений?
Если вы не настраиваете большие объемы данных и не нуждаетесь в дополнительных отбрасыванияхпроизводительность (и вы могли бы сказать, используя профилирование) иВы уверены, что не будете создавать циклические ссылки (или хотя бы число, которое имело бы значение), тогда да, вы также можете использовать только jQuery.data.