欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ECMAScript5中的對(duì)象存取器屬性:getter和setter介紹

 更新時(shí)間:2014年12月08日 11:00:12   投稿:junjie  
這篇文章主要介紹了ECMAScript5中的對(duì)象屬性存取器:getter和setter介紹,事實(shí)上在除ie外最新主流瀏覽器的實(shí)現(xiàn)中,任何一個(gè)對(duì)象的鍵值都可以被getter和setter方法所取代,這被稱之為“存取器屬性”,需要的朋友可以參考下

顯然這是一個(gè)無(wú)關(guān)IE(高級(jí)IE除外)的話題,盡管如此,有興趣的同學(xué)還是一起來(lái)認(rèn)識(shí)一下ECMAScript5標(biāo)準(zhǔn)中g(shù)etter和setter的實(shí)現(xiàn)。在一個(gè)對(duì)象中,操作其中的屬性或方法,通常運(yùn)用最多的就是讀(引用)和寫了,譬如說(shuō)o.get,這就是一個(gè)讀的操作,而o.set = 1則是一個(gè)寫的操作。事實(shí)上在除ie外最新主流瀏覽器的實(shí)現(xiàn)中,任何一個(gè)對(duì)象的鍵值都可以被getter和setter方法所取代,這被稱之為“存取器屬性”。

毫無(wú)疑問(wèn),getter負(fù)責(zé)查詢值,它不帶任何參數(shù),setter則負(fù)責(zé)設(shè)置鍵值,值是以參數(shù)的形式傳遞,在他的函數(shù)體中,一切的return都是無(wú)效的。和普通屬性不同的是,存儲(chǔ)器屬性在只聲明了get或set時(shí),對(duì)于讀和寫是兩者不可兼得的,當(dāng)它只擁有了getter方法,那么它僅僅只讀,同樣的,當(dāng)它只有setter方法,那么您讀到的永遠(yuǎn)都是undefined。如何聲明對(duì)象存儲(chǔ)器屬性呢? 最快捷的途徑就是利用對(duì)象字面量的語(yǔ)法來(lái)寫了,請(qǐng)看下述一段代碼:

復(fù)制代碼 代碼如下:

var oo = {
    name : '賢心',
    get sex(){
        return 'man';
    }
};
//顯然這是不允許的,因?yàn)橘t心并不希望外界去改變他是男性的事實(shí),所以對(duì)于sex只設(shè)置了只讀功能
oo.sex = 'woman';
console.log(oo.sex); //結(jié)果依然是man

有意思的是,這顛覆了我們以往的理解,就是在方法定義時(shí)并未用function關(guān)鍵字。事實(shí)上這里的get或set,你可以理解為兩種不同狀態(tài)下的function:包容的一面(寫),安全的一面(讀),當(dāng)一種整體被肢解為不同的形態(tài),意味著我們可能不再需要在表現(xiàn)形式上遵循傳統(tǒng),所以我們并沒(méi)有使用冒號(hào)將鍵和值分開(kāi)。那么,繼續(xù)上面的例子。你將如何在存儲(chǔ)器屬性的基礎(chǔ)上變得讀寫兼?zhèn)淠?,也許下面的一段會(huì)給你帶來(lái)答案:

復(fù)制代碼 代碼如下:

var oo = {
    name : '賢心',
    get sex(){
        if(this.sexx){
            return this.sexx;
        }else{
            return 'man';
        }
    }, set sex(val){
        this.sexx = val;
    }
};
//噢,他如此包容,乃至于人們改變他的性別,他也接受
oo.sex = 'woman';
console.log(oo.sex); //結(jié)果woman

或許你會(huì)覺(jué)得這是多此一舉的,因?yàn)槲覀兺耆梢院鲆昰et和set,直接讓sex方法具備兩種權(quán)限。 但之所以我們將get和set單獨(dú)拿出來(lái),是為了更加清晰地理解ECMAScript5對(duì)javascript對(duì)象鍵值操作中,一個(gè)更為嚴(yán)謹(jǐn)?shù)脑忈尅?當(dāng)然,在IE污染的中國(guó),新型的主流技術(shù)總是顯得格格不入,在實(shí)際的項(xiàng)目開(kāi)發(fā)中,也許你永遠(yuǎn)不會(huì)用到get和set,但誰(shuí)又能保證以后不會(huì)呢……

相關(guān)文章

最新評(píng)論