当jQuery自己传递时会发生什么?

所以我有一个难题,希望有人已经掌握了答案.阅读jQuery源代码,我还没有理解这里真正发生了什么.

 $('#div')      //returns a jQuery object
 $( $('#div') ) // returns an identical jQuery object
 $( $( $( $( $( $('#div') ) ) ) ) ) // returns the same idential object

我已经遇到插件开发中的实例,我不知道期望sting选择器或jQuery对象.在那些实例中,我只是将选择器或jQuery对象传递给jQuery,以便保证我想要的jQuery对象.它运作良好,但感觉太神奇了.我这样做的时候真的发生了什么?有没有更好的办法?

最佳答案 基本我认为在函数$(…)中存在一些基本情况.

>在Arg中是String类型,传递它并查找或创建HTML Dom元素,然后将其封装到JQuery对象中.
>在Arg中是HTML Dom类型,将对象封装到JQuery对象中
>在Arg中是JQuery Object,返回它就是这样

但实际上存在更多情况,并且在此之前有一些调试和错误检查.

http://jsapi.info/jquery/1.8.0/jQuery.fn.init查看更多信息
从代码中我可以看到,如果有的话.

var x = $('#div');
var y = $(x);

x和y的内容相等
但x和y的记忆并不相等.

说我们有:

class ${
  var x;
  $($t) {
    this.x = t.x
  }
}

如果我们都调用$这将具有相同的内在价值
但实际上并不是两个不同的对象.

点赞