https://github.com/841660202/custom-scroll-bar
win,doc,$ 分别对应 window,document,jQuery
访问添加的属性
你可以放慢听,右下角有对应功能的。至于听不懂只能说基础还要多看看。老师讲的非常不错,如果能完全掌握证明jq水平到一定火候了。
个人觉得有可能是,防止扩展原型时,同名冲突,覆盖原方法
用jquery.extend来优化构造函数.用来给这个构造函数的原型上添加属性和方法,这样所有的实例就会共享这些属性和方法。这样有重复的就会被替换成新的,还有extend具有深拷贝和递归的功能。我的理解也有限,希望能帮到你
1、_init 只是对实例这个方法的一个默认方法吧, initial :最初的。
也就是说每一次调用这个方法的话都要设置一些默认的参数或者属性,为了方便,合并为一个方法,名为_init。
2、因为这是个自执行的函数,或者说是一个闭包(不知道是否正确),防止污染全局函数,也就是说在这个自执行函数里面定义所有的变量、属性或方法,外部都是无法访问的,所以就要把定义好的CurScrollBar【自执行的函数】赋值给全局对象Scroll的一个属性【CusScrollBar】(注意:两个名称一样但代表不同的含义。)。
看到这里,也就是说自执行函数里面只要把CusScrollBar方法暴露给外部就可以了,在自执行函数的最下面传进去的有一个全局对象window,在这里可以直接变成它的一个属性来调用就可以了。
3、原型不清楚的可以看看js的基础,this._init(options) 就是在实例化 CusScrollBar 的时候直接会调用这个方法。
自己的一些理解,有些可能不太正确。