新手请教各位大神
新手有几个问题请教: 1. _init是js的固有属性么?他有什么作用? 2. 为什么Scroll.CusScrollBar = CusScrollBar就可以使new CusScrollBar()访问匿名函数里面的函数? 3.this._init(options)是什么意思? 原型的作用一直搞不清楚,原型到底是做什么用的?
新手有几个问题请教: 1. _init是js的固有属性么?他有什么作用? 2. 为什么Scroll.CusScrollBar = CusScrollBar就可以使new CusScrollBar()访问匿名函数里面的函数? 3.this._init(options)是什么意思? 原型的作用一直搞不清楚,原型到底是做什么用的?
2016-07-20
1、_init 只是对实例这个方法的一个默认方法吧, initial :最初的。
也就是说每一次调用这个方法的话都要设置一些默认的参数或者属性,为了方便,合并为一个方法,名为_init。
2、因为这是个自执行的函数,或者说是一个闭包(不知道是否正确),防止污染全局函数,也就是说在这个自执行函数里面定义所有的变量、属性或方法,外部都是无法访问的,所以就要把定义好的CurScrollBar【自执行的函数】赋值给全局对象Scroll的一个属性【CusScrollBar】(注意:两个名称一样但代表不同的含义。)。
看到这里,也就是说自执行函数里面只要把CusScrollBar方法暴露给外部就可以了,在自执行函数的最下面传进去的有一个全局对象window,在这里可以直接变成它的一个属性来调用就可以了。
3、原型不清楚的可以看看js的基础,this._init(options) 就是在实例化 CusScrollBar 的时候直接会调用这个方法。
自己的一些理解,有些可能不太正确。
举报