$.fn.each over Function 对象

$.fn.each over Function objects

为什么这个代码 returns "true"?

var object = {one: 1, two: 2};
$(object).each(function () {
    console.log(this === object); // returns "true"
});

而这段代码 returns "false"?

var object = function() {};
$(object).each(function () {
    console.log(this === object); // returns "false"
});

不应该 return "true" 吗? 谢谢。

您的第一个示例创建了一个 disconnected jQuery 对象(即未连接到 DOM 元素)并遍历该单个元素,因此 this是你的对象。

第二个实际上将该函数用作 DOM 就绪事件处理程序!

例如$(function(){}); 实际上是 $(document).ready(function(){}); 的快捷方式,因此 this 实际上是 document,这显然不是您的函数对象。