如果是我来实现这样的效果的话,
会覆盖的就应该是放在获取到的dom节点上的,既然是同一个节点,即同一个对象,自然会覆盖了。
不会覆盖就应该放在$实例上面,因为是实例,在内部新new出来的一个对象,不是同一个引用,自然不会覆盖,本身就不是同一个对象。
以上只是猜测,研究下一节去了。
会覆盖的就应该是放在获取到的dom节点上的,既然是同一个节点,即同一个对象,自然会覆盖了。
不会覆盖就应该放在$实例上面,因为是实例,在内部新new出来的一个对象,不是同一个引用,自然不会覆盖,本身就不是同一个对象。
以上只是猜测,研究下一节去了。
2016-07-15
在$()时,并没使用jQuery构造,而仅调用了jQuery函数,在jQuery函数内部通过new构造了init函数的实例(js中每一个函数都有一个原型prototype),那返回的新对象都是init构造的实例,它们都可访问init.prototype,而jQuery所有的方法都写在jQuery的jQuery.prototype上,要使实例能访问到jQuery上的方法,用继承或复制的方式将jQuery.prototype对象上的方法挂载到init.prototype上即可(因init.prototype一个方法也没写,所以可直接jQuery.prototype赋给init.prototype)
2016-07-09
已采纳回答 / zdddrszj
(1) 解析HTML结构。(2) 加载外部脚本和样式表文件。(3) 解析并执行脚本代码。(4) 构造HTML DOM模型。//ready(5) 加载图片等外部文件。(6) 页面加载完毕。//load因为步骤(3)先于步骤(4),“三” 在解析的时候就执行了,所以比“二”先执行。
2016-06-15
最赞回答 / 慕尼黑3821393
首先selector是传入的参数,就是jquery中$("#first")中的#first。因为document.getElementById()传入的参数没有前面的#,例如一个div<div id='frist'>,原生的javascript使用document.getElementById('first'),在jquery中是$('#first'), /[^#].*/.exec(selector)[0]就是为了帮你去掉那个#号。再说一下exec(),它的返回值是一个类数组,类数组的第一...
2016-06-15
为什么这里要判断this对象是不是deferred?难道还能使用别的对象来调用resolve方法?? deferred[tuple[0] + "With"](this === deferred ? promise : this, arguments)
2016-06-11