我已经在控制台中运行以下行(一旦加载了jQuery脚本),并收到了以下结果:
$(this)
> [Window]
$(this) != $(this)
> true
$(this) == $(this)
> false
$(this) === $(this)
> false
我不知道要弄清楚发生了什么步骤。我的猜测是,有些对象具有基于时间的价值,但我想知道这是否有所不同。在此期间,我将尝试比较这些值,但我希望有人可以理解这里发生了什么。
编辑是为了解决我不知道$(arg)的基本实施的观点。我不知道它返回了一个新的参考对象。因此,我不认为这是"如何确定两个JavaScript对象的平等?"。
使用$()
返回JQuery的实例。因此,您可以使用this
创建一个实例,而this
的另一个实例,您有两个单独的实例。即使他们共享对this
的相同引用,这些实例也不相同,而这些是所比较的。
有一个视觉示例可能会有所帮助,并且可能会使事情更加清楚。jQuery像一堂课一样运作。因此,让我们使用非常简单的示例例如,例如,函数$()
不存在:
class jQuery {
constructor(element) {
this.element = element;
}
}
var obj1 = new jQuery(this);
var obj2 = new jQuery(this);
console.log(obj1 === obj2); // false
这两个都使用完全相同的参数(this
)来创建一个新的" jQuery"对象。但是,再次,OBJ1与OBJ2完全不同。他们俩在记忆中都有自己独特的位置。