我也不喜欢这种模式。他们有一个
init函数,它是所有jQuery实例的构造
jQuery函数- 函数本身只是对象创建过程的包装器,包括
new:
function jQuery(…) { return new init(…); }然后,他们将那些实例的方法添加到
init.prototype对象中。该对象在处作为接口公开
jQuery.fn。此外,他们将
prototypejQuery函数的属性设置为该对象-
对于不使用该
fn属性的用户。现在你有
jQuery.prototype = jQuery.fn = […]init.prototype
但是他们也做两件事:
- 覆盖
constructor
原型对象的属性,将其设置为jQuery
函数 - 公开
init
功能jQuery.fn
-自己的原型。这可能允许扩展$ .fn.init函数,但非常令人困惑
我认为他们需要/想要做所有这些事情以防万一,但是他们的代码很烂-从该对象文字开始,然后分配init原型。



