1.在jq源码里经常会有this.constructor(param)语句,比如this.constructor(context).find(),这里的作用是什么?constructor不是原型对象里的一个属性,指向构造函数么?求解答
2.eq的源码是这样写的:
eq: function( i ) {
var len = this.length,
j = +i + ( i < 0 ? len : 0 );
return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
},
这样不是将当前找到的元素和之前的jq对象合并么?那么这样的话length应该是原来length+1,但是为什么是?length = 1?
是啊,
this.constructor === jQuery
,有什么不妥么?this是函数内部自有的,jQuery是函数外部作用域的变量,你说用哪个好呢?去看看pushStack,它和push不是一个意思,这个是某个版本的pushStack源码:
pushStack 的目的貌似是为了end()的时候找到最初的那个对象。