doubleyong
管理员
管理员
  • 最后登录2026-05-25
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:6370回复:0

如何模拟jquery 返回数组对象

楼主#
更多 发布于:2017-12-02 08:23
在模拟封装jquery 时, 发现 $("selector')   返回的是一个对象,并且它提供的方法,如:css , html 等,也返回的是一个对象 ,所以,能够实现链接调用。
      要实现这个非常简单,在调用方法后,将实现对象返回,即可

   if ( !selector ) {
        console.log(this)
        return this;
    }  

可还有一个问题,那就是我们在使用jquery对象时,可以通过$("slector")[下标]的形式来返回对应的DOM元素,这是如何实现的??

思考: 首先可以肯定,它返回的是一个对象,而不是一个数组. 这一样可以能过Array.isArray 这个方式来确定。

那问题,又回来了,如何实现能过[0]来取得DOM元素呢?

最后,经过查阅,终于知道了原因,原来模拟了数组的这种形式。其它返回的还是对象·然后给对象添加数字属性。

中括号除了是数组是,也可以是对象通过key来获取对应key的值。 e.g object[key].

模拟代码实现如下:

            //将dom对象添加到实例中
            if(this.node.length!= undefined){
                for(var i=0;i<this.node.length;i++){ this = this.node; }
            }else{
                this[0]=this.node;
            }
参考:https://zhidao.baidu.com/question/1046719744348088899.html
          https://segmentfault.com/q/1010000002991502
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号