hnull
2014-12-24 17:34
"init是ajQuery原型上作为构造器的一个方法,那么其this就不是ajQuery了" --> this是ajQuery.prototype.init()创造的实例。
"所以这里通过new把init方法与ajQuery给分离成2个独立的构造器" --> 这个的确不是很了解。
new ajQuery() 和 ajQuery() 的结果都是一样的(在火狐浏览器控制台下查看), 那ajQuery的原型方法理论上 new ajQuery()创造的实例是无法使用这个原型里面的方法属性的,只能使用ajQuery.prototype.init()这个函数对应的原型里面的方法属性,
问题: ajQuery的构造器好像实际上是没什么用了, new ajQuery()生成的实例 会被 返回的 new ajQuery.prototype.init() 生成的实例覆盖了?
这是跟后面的静态与实例设计有关系
简单的说 jQuery底层是扩展的静态方法,然后共享给实例调用
开发者通过通过选择器创建的jQuery对象,是实例对象,在原型上大部分的接口都是用来做一个过滤包装的处理,真正的处理都是通过静态方法实现的。
jQuery源码解析(架构与依赖模块)
84047 学习 · 280 问题
相似问题