JS - 對(duì)象(5)

對(duì)象標(biāo)簽,對(duì)象序列化

  • [[proto]]
  • [[class]]
  • [[extensible]]

原型標(biāo)簽 proto 懈贺。

class標(biāo)簽梭灿,表示對(duì)象屬于哪個(gè)類型

var toString = Object.prototype.toString;
function getType(o) {
    return toString.call(o).slice(8, -1);
}

toString.call(null); // "[Object Null]"
getType(null); // "Null"
getType(undefined); // "Undefined"
getType(1); // "Number"
getType(new Number(1)); // "Number"
typeof new Number(1); // "Object"
getType(true); // "Boolean"
getType(new Bollean(true)); // "Boolean"

extensible標(biāo)簽

var obj = {x:1, y:2};
Object.isExtensible(obj); // true
Object.preventExtensions(obj);
Object.isExtensible(obj); // flase
obj.z = 1;
obj.z; // undefined, add new property failed
Object.getOwnPropertyDescriptor(obj, 'x');
// Object {value: 1, writable: true, enumerable: true, configurable: true}

Object.seal(obj);
Object.getOwnPropertyDescriptor(obj, 'x');
//Object {value: 1, writable: true, enumerable: true, configurable: false}
Object.isSealed(obj); // true

Object.freeze(obj);
Object.getOwnPropertyDescriptor(obj, 'x');
//Object {value: 1, writable: false, enumerable: true, configurable: false}
Object.isFrozen(obj); // true

// [caution] not affects prototype chain!!!

序列化

var obj = {
    x: 1,
    y: true,
    z: [1, 2, 3],
    nullVla: null
};
JSON.stringify(obj); // "{"x":1,"y":true, "z":[1,2,3], "nullVla": null}"

//如果值是 undefined 堡妒,則不會(huì)出現(xiàn)在序列化中
obj = {
    val: undefined,
    a: NaN,
    b: Infinity,
    c: new Date()
};
JSON.stringify(obj); // "{"a":null,"b":null, "c":"2015-02-01T18:35:39.434Z"}"

obj = JSON.parse('{"x":1}');
obj.x; //1

序列化-自定義

var obj = {
    x:1,
    y:2,
    o:{
        o1:1,
        o2:2,
        toJSON: function() {
            return this.o1 + this.o2;
        }
    }
};

JSON.stringify(obj); //"{"x":1, "y":2, "o":3}"

其他對(duì)象發(fā)法

var obj = {x:1, y:2};

obj.toString(); // "[object Object]"
obj.toString = function() {
    return this.x + this.y
};
"Result " + obj; // "Result 3", by toString

+obj; // 3, from toString

obj.valueOf = function() {
    return this.x + this.y + 100;
};

+obj; // 103, from valueOf

//字符串拼接仍然用 toString
"Result " + obj; //still "Result 3"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市桑寨,隨后出現(xiàn)的幾起案子西疤,更是在濱河造成了極大的恐慌休溶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芭碍,死亡現(xiàn)場(chǎng)離奇詭異窖壕,居然都是意外死亡瞻讽,警方通過查閱死者的電腦和手機(jī)熏挎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門坎拐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來养匈,“玉大人呕乎,你說我怎么就攤上這事陨晶。” “怎么了逐虚?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵叭爱,是天一觀的道長(zhǎng)买雾。 經(jīng)常有香客問我漓穿,道長(zhǎng)注盈,這世上最難降的妖魔是什么晃危? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮老客,結(jié)果婚禮上僚饭,老公的妹妹穿的比我還像新娘。我一直安慰自己胧砰,他們只是感情好鳍鸵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尉间,像睡著了一般偿乖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哲嘲,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天贪薪,我揣著相機(jī)與錄音,去河邊找鬼眠副。 笑死古掏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的槽唾。 我是一名探鬼主播拧烦,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼债沮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起闷煤,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤近顷,失蹤者是張志新(化名)和其女友劉穎窒升,沒想到半個(gè)月后瑟由,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歹苦,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚪腋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年眼溶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绰筛。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薄榛,死狀恐怖敞恋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啸蜜,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響睁蕾,放射性物質(zhì)發(fā)生泄漏瀑凝。R本人自食惡果不足惜硅卢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一点寥、第九天 我趴在偏房一處隱蔽的房頂上張望蔽莱。 院中可真熱鬧,春花似錦仪糖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棺克。三九已至,卻和暖如春确买,著一層夾襖步出監(jiān)牢的瞬間搀缠,已是汗流浹背艺普。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工瑰步, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舌界,地道東北人睦焕。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像陌知,于是被迫代替她去往敵國和親沿盅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子南窗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 序 從最近的js入門系列的閱讀量逐步遞減,觀眾老爺?shù)呐d趣也不再能夠接受一些細(xì)節(jié)性的地方深度挖掘凤价,讓我有了一些思考。...
    zhaolion閱讀 1,574評(píng)論 5 19
  • 由于工程項(xiàng)目中擬采用一種簡(jiǎn)便高效的數(shù)據(jù)交換格式,百度了一下發(fā)現(xiàn)除了采用 xml、JSON 還有 ProtoBuf(...
    黃海佳閱讀 48,527評(píng)論 1 23
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,869評(píng)論 6 13
  • 演講者Tim Urban嘁捷,讀政府專業(yè),擁有寫不完的論文,別人都是剛開始就把第一時(shí)間寫完,而他總在最后一刻驚慌怪獸出...
    karmen123閱讀 314評(píng)論 0 0