公有方法
公有方法就是能被外部訪問并調(diào)用的方法。
私有方法和特權(quán)方法
這兩個(gè)方法一般放在一起討論,原因在于我們定義的特權(quán)方法是指有權(quán)訪問內(nèi)部私有屬性和私有方法的公有方法,而私有方法是指外部不可見且不可訪問的方法。
通常定義一個(gè)對(duì)象的方式有二種,一是使用Object實(shí)例化或者對(duì)象表達(dá)式,二是使用構(gòu)造函數(shù)。同樣在不同的方式下面定義私有方法和特權(quán)方法的形式也不相同。
在對(duì)象中
這里我們通過Object對(duì)象表達(dá)式來創(chuàng)建一個(gè)對(duì)象并添加一些屬性和方法,然后直接采用靜態(tài)的方式調(diào)用。對(duì)象的私有數(shù)據(jù)放置在一個(gè)匿名函數(shù)立即執(zhí)行表達(dá)式(IIFE)中。這意味著這個(gè)函數(shù)只存在于被調(diào)用的瞬間,一旦執(zhí)行后就立即被銷毀了。
在對(duì)象中創(chuàng)建私有數(shù)據(jù)的方式在對(duì)象的模式(指創(chuàng)建對(duì)象的模式)中被稱之為模塊模式,它的基本格式如下:
在模塊模式中,返回的對(duì)象字面量中只包含可以公開的屬性和方法。
注意我們使用了閉包的方式來間接使用內(nèi)部私有變量,同時(shí)對(duì)餐廳(Restaurant)名(name)進(jìn)行了初始化。
在構(gòu)造函數(shù)中
在上面介紹的模塊模式創(chuàng)建私有方法時(shí),公有方法和特權(quán)方法并沒有什么本質(zhì)上的區(qū)別,原因在于這個(gè)概念是來自于使用構(gòu)造函數(shù)創(chuàng)建私有數(shù)據(jù)的時(shí)候定義出來的。
在構(gòu)造函數(shù)中定義私有屬性和方法很方便,我們不需要使用閉包,可以在調(diào)用的時(shí)候初始化數(shù)據(jù)。
合二為一,更加靈活的方式
使用模塊模式我們可以多次調(diào)用,每次執(zhí)行完后都會(huì)被銷毀掉。使用構(gòu)造函數(shù)方式可以傳入一些初始化的數(shù)據(jù),但在公有方法中無法訪問到私有成員屬性,如果有很多公有方法需要訪問私有數(shù)據(jù),我們?nèi)坑锰貦?quán)方法來寫,最后會(huì)給每個(gè)實(shí)例帶去很多沒有必要的方法。因此,將兩者結(jié)合在一起可以長(zhǎng)短互補(bǔ),結(jié)合方式也很簡(jiǎn)單
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com