qq_猛虎嗅蔷薇_0
2016-05-19 09:50
首先,要解决无new,拿么只能在函数里边new,但是new自己容易出现无限递归自己。那么就要想办法,不能new 自己,那能不能new别人,然后让这个人拥有和自己一样的属性和方法,只是换了个名字而已,当然是可以的。如是就有了new ajQuery.fn.init( selector ). 在init()方法里返回this,然后将init.prototype=ajQuery.prototype,这样,init()返回的this 就拥有了ajQuery所有的属性和方法。绕了一个圈,目的就为了不new自己也能得到和自己拥有相同属性和方法的实例对象。
还有就是,如果把所有的jQuery实例方法都挂载在 jQuery的原型下面,那每个jQuery对象都直接继承这写方法,太占内存,所以强制new init,每个实例对象可以通过init和jQuery的原型链来查找那些实例方法。
jQuery源码解析(架构与依赖模块)
84049 学习 · 280 问题
相似问题