zepto源码中关于`zepto.Z.prototype = $.fn`的问题

最近阅读zepto(版本v1.1.6)源码的过程中,有个地方没有想明白。首先看到第155行:

zepto.Z = function(dom, selector) {
    dom = dom || []
    dom.__proto__ = $.fn
    dom.selector = selector || ''
    return dom
  }

其中dom.__proto__ = $.fn是把dom array指向$.fn,使得这个dom array能够使用$.fn的所有方法,这个可以理解,没有问题。但是在第874行中,有一句这样的代码:

zepto.Z.prototype = $.fn

我的理解是,这一句话让zepto.Z继承自$.fn,但是上文的dom.__proto__ = $.fn已经实现了让“这个dom array能够使用$.fn的所有方法”的功能了,为什么还要加这一句话呢?

后来我自己参照写了个demo,代码如下:

https://img3.mukewang.com/5ba0dd550001376803540410.jpg

https://img2.mukewang.com/5ba0dd5c0001708001990151.jpg

这里面并没有otpez.Z.prototype = $.fn,能够正确输出Hello otpez!

所以希望能够得到大神的解答,zepto源码中的zepto.Z.prototype = $.fn到底是用来干嘛的?
谢谢!


四季花海
浏览 721回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript