|
阅读:6370回复:0
如何模拟jquery 返回数组对象
在模拟封装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 |
|
|