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

Javascript 什么是对DOM对象的反向引用?,javascript,jquery,Javascript,Jquery,在这个链接中:它有一行代码 // Add a reverse reference to the DOM object base.$el.data("yourPluginName", base); “反向引用DOM对象”是什么意思?假设您知道jQuery数据函数: 它在jQuery的数据缓存中存储对该类实例的引用,这意味着如果当前上下文中的初始base对象不可用,则可以使用存储的实例访问该对象。 这样,以后可以使用类实例但是,在创建实例的初始类上使用prototype关键字将修改实例 编辑:

在这个链接中:它有一行代码

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

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

假设您知道jQuery数据函数:

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

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


编辑: 哎呀,看来阿努拉格是对的,而我提供的信息是错误的。
对不起,我在最初的回答中给出的信息并不完全正确。我已经更新了答案,所以它现在说明了真相。
在您询问的评论中:


所以你的意思是它将“base”的当前状态存储在数据缓存中,但是如果我们稍后对“base”进行更改,那么数据中的“base”不会受到影响?因此,如果出于某种原因,我们需要再次获取原始数据,我们可以使用数据(“yourPluginName”)来检索它?你能给我举个例子说明这什么时候有用吗

似乎没有一种说法是正确的

我显然记不清了,存储在
数据中的东西只不过是对对象的引用:

var obj = {};
obj.hello = "Hello";
$("#someElement").data("object", obj);
obj.world = " world.";
alert(
  obj.hello + 
  $("#someElement").data("object").world
); // alerts "Hello world."
顺便说一句,JavaScript变量的名称类似于
base
-东西(但通常被视为
that
或类似),通常用于表示当前上下文,通过
this
关键字访问,在许多情况下,由于作用域/上下文更改,该关键字更容易存储在另一个变量中,这将使当前上下文发生更改,因此

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


我希望这回答了您的问题:D

该技术及其解决的问题是通用的,而不是特定于jQuery插件。在某些情况下,Javascript对象对应于DOM元素,并封装特定于该DOM元素的逻辑。此对象可能对侦听该DOM元素中发生的事件(如单击)感兴趣。我们在这些回调中得到的信息是触发它的元素,而不是关联的对象。您可以使用jQuery的
数据
API或任何类型的映射来检索相应的对象,并对其进行处理。

老实说,我不太清楚他们为什么要存储此引用,如果您进入插件,我会从这里开始:+1。。。苏恩,我相信你是对的;修改
yourPluginName
prototype
确实会修改存储的对象。因此,您的意思是它将“base”的当前状态存储在数据缓存中,但如果我们稍后对“base”进行更改,那么数据中的“base”不会受到影响?因此,如果出于某种原因,我们需要再次获取原始数据,我们可以使用数据(“yourPluginName”)来检索它?你能给我举个例子说明什么时候这会有帮助吗?数据将存储对对象的引用,而不是副本-参见我很困惑的例子。。。你能把上面的内容编辑一下吗?这样我就可以知道这些解释中哪一个是正确的了?我读到的每件事都像。。。好啊我明白了,然后。。。“抱歉,您刚才读到的信息不正确”:(我也有点困惑。我从中得到的是……基本上它存储了对对象的引用。这可以用于使其全局化,而不是在函数范围内。正确吗?