面向?qū)ο?001


title: 面向?qū)ο缶幊?1

對象:無序?qū)傩缘募希鋵傩钥梢园局等鳎瑢ο筌酱蛘吆瘮?shù)。

理解對象

創(chuàng)建自定義對象的首選方法為對象字面量形式:

var person = {
    name: 'benjamin',
    age: 22,
    job: 'Front End Engineer',
    sayName: funtion(){
        alert(this.name);
    }
};

屬性類型

JS中有兩種屬性:數(shù)據(jù)屬性和訪問器屬性茉继。

數(shù)據(jù)屬性

數(shù)據(jù)屬性包含一個數(shù)據(jù)值的位置咧叭。在這個位置可以讀取和寫入值。數(shù)據(jù)屬性有4個描述其行為的特質(zhì)烁竭。

如果需要修改屬性的默認(rèn)特性菲茬,必須使用Object.defineProperty()方法。此方法接受三個參數(shù):屬性所在的對象派撕,屬性名和一個描述符(descriptor)對象婉弹。描述符對象的屬性必須是:configurable、enumerable终吼、writable和value镀赌。

var person = {};
Object.defineProperty(person,'name',{
    writable: false,
    value: 'benjamin'
});
alert(person.name)  //'benjamin'
person.name = 'llf';
alert(person.name)  //'benjamin'

無法提供賦值形式修改'name'的值。該規(guī)則對于configurable同樣適用际跪。而且一旦將屬性定義為不可配置后商佛,就無法再將它變回可配置了喉钢。

訪問器屬性

訪問器屬性不包含數(shù)據(jù)值;它包含一對getter和setter函數(shù)良姆。在讀取訪問器屬性時肠虽,會調(diào)用getter函數(shù),這個函數(shù)負(fù)責(zé)返回有效的值玛追;在寫入訪問器屬性時舔痕,會調(diào)用setter函數(shù)并傳入新值,這個函數(shù)負(fù)責(zé)如何處理數(shù)據(jù)豹缀。

訪問器屬性具有以下四個特性:

由于訪問器屬性不可以直接定義伯复,必須使用Object.defineProperty()來定義。

var book = {
    _year: 2004,
    edition: 1
};
Object.defineProperty(book,'year',{
    get: function () {
        return this._year;
    },
    set: function (newValue) {
        if (newValue > 2004) {
            this._year = newValue;
            this.edition += newValue - 2004;
        }
    }
});
book.year = 2005;
alert(book.edition);    //2

訪問器屬性通常用于設(shè)置一個屬性的值會導(dǎo)致其他屬性的變化

定義多個屬性

利用Object.defineProperties()可以通過描述符一個定義多個屬性邢笙。此方法接受兩個對象參數(shù):第一個對象為要添加和修改其屬性的對象啸如,第二個對象的屬性與第一個對象中要添加或修改的屬性一一對應(yīng)。

var book = {};
Object.defineProperties(book,{
    _year: {
        writable: true,
        value: 2004
    },
    edition: {
        writable: true,
        value: 1
    },
    year: {
        get: function () {
            return this._year;
        }.
        set: function (newValue) {
            if (newValue > 2004) {
                this._year = newValue;
                this.edition += newValue - 2004;
            }
        }
    }
})

讀取屬性特性

利用Object.getOwnPropertyDescriptor()方法可以去屬性的描述符氮惯。該方法接受兩個參數(shù):屬性所在的對象名以及要讀取其描述符的屬性的名稱叮雳。返回值是一個對象,如果是訪問器屬性妇汗。該對象的屬性就有configurable帘不、enumerable、get杨箭、set;如果是數(shù)據(jù)屬性寞焙。那就是configurable、enumerable互婿、writable捣郊、value。

var descriptor = Object.getOwnPropertyDescriptor(book,'_year');
alert(descriptor.value);    //2004
alert(descriptor.configurable);     //false
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慈参,一起剝皮案震驚了整個濱河市呛牲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驮配,老刑警劉巖娘扩,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異壮锻,居然都是意外死亡琐旁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門躯保,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旋膳,“玉大人,你說我怎么就攤上這事途事⊙榘茫” “怎么了擅羞?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長义图。 經(jīng)常有香客問我减俏,道長,這世上最難降的妖魔是什么碱工? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任娃承,我火速辦了婚禮,結(jié)果婚禮上怕篷,老公的妹妹穿的比我還像新娘历筝。我一直安慰自己,他們只是感情好廊谓,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布梳猪。 她就那樣靜靜地躺著,像睡著了一般蒸痹。 火紅的嫁衣襯著肌膚如雪春弥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天叠荠,我揣著相機(jī)與錄音匿沛,去河邊找鬼。 笑死榛鼎,一個胖子當(dāng)著我的面吹牛逃呼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播借帘,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜘渣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肺然?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腿准,失蹤者是張志新(化名)和其女友劉穎际起,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吐葱,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡街望,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弟跑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灾前。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孟辑,靈堂內(nèi)的尸體忽然破棺而出哎甲,到底是詐尸還是另有隱情蔫敲,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布炭玫,位于F島的核電站奈嘿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吞加。R本人自食惡果不足惜裙犹,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衔憨。 院中可真熱鬧叶圃,春花似錦、人聲如沸践图。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽平项。三九已至赫舒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闽瓢,已是汗流浹背接癌。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留扣讼,地道東北人缺猛。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像椭符,于是被迫代替她去往敵國和親荔燎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 博客內(nèi)容:什么是面向?qū)ο鬄槭裁匆嫦驅(qū)ο竺嫦驅(qū)ο缶幊痰奶匦院驮瓌t理解對象屬性創(chuàng)建對象繼承 什么是面向?qū)ο?面向?qū)ο?..
    _Dot912閱讀 1,424評論 3 12
  • 函數(shù)和對象 1销钝、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念有咨。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,564評論 0 5
  • 本章內(nèi)容 理解對象屬性 理解并創(chuàng)建對象 理解繼承 面向?qū)ο笳Z言有一個標(biāo)志蒸健,那就是它們都有類的概念座享,而通過類可以創(chuàng)建...
    悶油瓶小張閱讀 851評論 0 1
  • 如今的激進(jìn)員工,出色領(lǐng)導(dǎo)者,勞動模范這些光榮稱號,加班如影隨形,似乎成了衡量一個人工作敬業(yè)的程度.網(wǎng)上有一個段子 ...
    中麥麥閱讀 296評論 1 1
  • 前言 幾年前渣叛,因為瀏覽器不具備直接訪問剪貼板的能力,開發(fā)者只能借助于Flash插件來提供這一基本功能盯捌。 乍一看開放...
    嗯這是網(wǎng)名閱讀 3,390評論 0 0