新手請教各位大神
新手有幾個問題請教: 1. _init是js的固有屬性么?他有什么作用? ? 2. 為什么Scroll.CusScrollBar = CusScrollBar就可以使new CusScrollBar()訪問匿名函數(shù)里面的函數(shù)? 3.this._init(options)是什么意思? 原型的作用一直搞不清楚,原型到底是做什么用的?
新手有幾個問題請教: 1. _init是js的固有屬性么?他有什么作用? ? 2. 為什么Scroll.CusScrollBar = CusScrollBar就可以使new CusScrollBar()訪問匿名函數(shù)里面的函數(shù)? 3.this._init(options)是什么意思? 原型的作用一直搞不清楚,原型到底是做什么用的?
2016-07-20
舉報
2016-07-20
1、_init 只是對實例這個方法的一個默認方法吧,?initial :最初的。
也就是說每一次調(diào)用這個方法的話都要設(shè)置一些默認的參數(shù)或者屬性,為了方便,合并為一個方法,名為_init。
2、因為這是個自執(zhí)行的函數(shù),或者說是一個閉包(不知道是否正確),防止污染全局函數(shù),也就是說在這個自執(zhí)行函數(shù)里面定義所有的變量、屬性或方法,外部都是無法訪問的,所以就要把定義好的CurScrollBar【自執(zhí)行的函數(shù)】賦值給全局對象Scroll的一個屬性【CusScrollBar】(注意:兩個名稱一樣但代表不同的含義。)。
看到這里,也就是說自執(zhí)行函數(shù)里面只要把CusScrollBar方法暴露給外部就可以了,在自執(zhí)行函數(shù)的最下面?zhèn)鬟M去的有一個全局對象window,在這里可以直接變成它的一個屬性來調(diào)用就可以了。
3、原型不清楚的可以看看js的基礎(chǔ),this._init(options) 就是在實例化?CusScrollBar 的時候直接會調(diào)用這個方法。
自己的一些理解,有些可能不太正確。