javascript 對象屬性

先舉個(gè)栗子(~ ̄▽ ̄)~
在js中為一個(gè)對象添加屬性我們可以這樣

var Person = {};
Person.name = 'zane';

// 等價(jià)于
var Person = {
  name = 'zane'
}

javascript對象的屬性可以分為兩類:
(1)數(shù)據(jù)屬性:包含一個(gè)數(shù)據(jù)值得位置知举,在這個(gè)位置可以讀取和寫入值派敷。有4個(gè)特性:

configrable:  true/false; //能否通過delete刪除
enumerable: true/false; //能否通過for-in返回
writable: true/false; //能否修改
value:值

(2)訪問器屬性:訪問器屬性不包含值得位置照棋,而是包含一對getter夏块、setter函數(shù)剪芥,取值和賦值是通過這對函數(shù)操作担扑。同樣有四個(gè)特性:

configrable:  true/false; //能否通過delete刪除
enumerable: true/false; //能否通過for-in返回
get //讀取屬性時(shí)調(diào)用函數(shù)  默認(rèn)值:undefined
set //寫入屬性時(shí)調(diào)用函數(shù)  默認(rèn)值:undefined

configrable/
可以看出上面例子中Person的name屬性是直接賦值的,所以是數(shù)據(jù)屬性,
數(shù)據(jù)屬性可以直接定義,而訪問器屬性不能直接定義芙扎。

接下來說明一下在JavaScript中如何使用上面說的幾種特性
Object.defineProperty(obj, 'property', {})

/* 數(shù)據(jù)屬性*/
var Person = {};
Object.defineProperty(Person, 'name', {
    configurable: false,
    writable: false,
    enumerable: true,
    value: 'Zane'
});
console.log("原name: "+Person.name);  // 原name: Zane
Person.name = "xiaoming";
console.log("更改后name: "+Person.name); // 更改后name: Zane
delete Person.name;
console.log("刪除后name: "+Person.name); // 刪除后name: Zane
    
for(var key in Person) {
    console.log(key);
}
// name
/* 訪問器屬性 */
var Book = {
    _year: 2014,
    edition: 1
}
Object.defineProperty(Book, 'year', {
    get: function () {
        return this._year;
    },
    set: function (value) {
        if(value > 2014) {
            this._year = value;
            this.edition = value - 2014 + 1;
        }
    }
})
Book.year = 2016;
console.log(Book); // Object {_year: 2016, edition: 3}

如何同時(shí)定義多個(gè)屬性呢

var Book = {};
Object.defineProperties(Book, { // 注意是復(fù)數(shù) defineProperties
    _year: {
        value: 2014
    },
    edition: {
        writable: true,
        value: 1
    },
    year: {
        get: function () {
            return this._year;
        },
        set: function (value) {
            if(value > 2014) {
                this._year = value;
                this.edition = value - 2014 + 1;
            }
        }
    }
});
var descriptor = Object.getOwnPropertyDescriptor(Book, '_year');
console.log(descriptor.writable);  // fales
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末星岗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戒洼,更是在濱河造成了極大的恐慌俏橘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圈浇,死亡現(xiàn)場離奇詭異寥掐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)磷蜀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門召耘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人褐隆,你說我怎么就攤上這事污它。” “怎么了庶弃?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵衫贬,是天一觀的道長。 經(jīng)常有香客問我歇攻,道長固惯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任缴守,我火速辦了婚禮葬毫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘斧散。我一直安慰自己供常,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布鸡捐。 她就那樣靜靜地躺著栈暇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪箍镜。 梳的紋絲不亂的頭發(fā)上源祈,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音色迂,去河邊找鬼香缺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛歇僧,可吹牛的內(nèi)容都是我干的图张。 我是一名探鬼主播锋拖,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼祸轮!你這毒婦竟也來了兽埃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤适袜,失蹤者是張志新(化名)和其女友劉穎柄错,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苦酱,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡售貌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疫萤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颂跨。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖给僵,靈堂內(nèi)的尸體忽然破棺而出毫捣,到底是詐尸還是另有隱情详拙,我是刑警寧澤帝际,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站饶辙,受9級特大地震影響蹲诀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弃揽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一脯爪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矿微,春花似錦痕慢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至娜庇,卻和暖如春塔次,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背名秀。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工励负, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匕得。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓继榆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子略吨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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

  • ECMAScript 中有兩種數(shù)據(jù)屬性攒发,分別是數(shù)據(jù)屬性和訪問器屬性,下面來依次介紹晋南。 1. 數(shù)據(jù)屬性 數(shù)據(jù)屬性有四...
    ghwaphon閱讀 279評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理惠猿,服務(wù)發(fā)現(xiàn),斷路器负间,智...
    卡卡羅2017閱讀 134,660評論 18 139
  • zfc. 我不愛你了政溃。你看趾访,下午還信誓旦旦的說愛你的人,不過傾刻間就改變了想法董虱,是不是很可笑扼鞋?其實(shí)我不是不愛你,而...
    今天以后閱讀 278評論 0 1
  • 陽光溫?zé)幔瑲q月靜好淫半,我能想到最浪漫的事就是陪你一起慢慢變老现诀。我淚點(diǎn)太低了蔓钟,一早被這兩位老人感動的一塌糊涂腿倚! 世界上...
    食美者閱讀 406評論 0 0
  • 公司最近盛行加班風(fēng)对人,大家約好了似的谣殊,埋頭苦干。中午不記得吃飯牺弄,下午不記得點(diǎn)下午茶姻几,傍晚不記得回家。饒是深圳離廈門再...
    芳寶落落閱讀 3,579評論 30 17