gpt4 book ai didi

javascript - 什么是 DOM 对象的反向引用?

转载 作者:行者123 更新时间:2023-11-30 18:54:27 24 4
gpt4 key购买 nike

在此链接中:http://css-tricks.com/snippets/jquery/jquery-plugin-template/它有一行代码说

// Add a reverse reference to the DOM object
base.$el.data("yourPluginName", base);

“DOM 对象的反向引用”是什么意思?

最佳答案

假设您知道 jQuery 数据函数:

它在 jQuery 的数据缓存中存储对类实例的引用,这意味着存储的实例可用于访问初始对象如果它在当前上下文中不可用

这样,以后就可以使用类实例了。 但是,在创建实例的初始类上使用prototype 关键字会修改实例。


编辑:

糟糕,看来 Anurag 是对的,我提供的信息有误。
抱歉,我在最初回答中提供的信息并不完全正确。我已经更新了答案,所以它现在说的是实话。
在您提出的评论中:

so you mean its storing the current state of "base" in the data cache but if we make changes to "base" later on then the one in the data wont be affected? so if for some reason we needed to get the original one again we can do data('yourPluginName') to retrieve it? can you give me an example of when this would be helpful?

似乎没有一个说法是正确的。

显然我记不太清楚了,data 中存储的只是对对象的引用:

var obj = {};
obj.hello = "Hello";
$("#someElement").data("object", obj);
obj.world = " world.";
alert(
obj.hello +
$("#someElement").data("object").world
); // alerts "Hello world."

顺便说一句,名称如 this base 的 JavaScript 变量(但通常被视为 that 或类似名称)通常用于表示当前上下文,通过this 关键字,在许多情况下,由于作用域/上下文更改,它更容易存储在另一个变量中,这将使当前上下文和 this 发生变化。

同样由于上下文问题,data 中的存储值可用于从另一个上下文访问特定对象实例(即,当 this 表示其他内容时),而不是在存储副本后继续使用的 base 对象的版本。

我希望这能回答你的问题:D

关于javascript - 什么是 DOM 对象的反向引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2669644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com