JS對象基本用法

聲明對象的兩種語法

let obj = { 'name': 'frank', 'age': 18 }
let obj = new Object({'name': 'frank'})
前兩種是常用的兩種語法
var obj1=Object.create({name:'frank'})
在原型內(nèi)創(chuàng)建對象
console.log({ 'name': 'frank, 'age': 18 })

如何刪除對象的屬性

delete 刪除對象的屬性
delete obj.xxx 或者 delete obj['xxx']
obj.name=undefined 刪除的是屬性值
delete obj.name 刪除的是屬性名 不含屬性名
'name' in obj ===false 不含屬性名
'name' in obj && obj.xxx===undefined 含有屬性名匈棘,但是值為undefined

注意 obj.xxx===undefined
不能斷定 'xxx' 是否為obj的屬性

如何查看對象的屬性

查看所有屬性 讀屬性

Object.keys(obj2)
Object.values(obj2)
Object.entries(obj2)

查看自身屬性+共有屬性
console.dir(obj)
或者自己依次用Object.keys 打印出 obj.proto 這種方式不推薦
兩種方法查看屬性

中括號語法:obj['key'] 優(yōu)先使用中括號語法
點語法:obj.key

坑新人語法: obj[key]

obj.name 等價于 obj['name']
obj.name不等價于 obj[name]

let name = 'frank'
obj[name] 等價于obj['frank']

而不是

obj['name'] 和 obj.name

如何修改或增加對象的屬性

直接賦值
let obj ={name: 'frank'} //name是字符串
obj.name= 'frank'
obj['name'] = 'frank'

批量賦值

Object.assign(obj, {age:18, gender: 'man'})

無法通過自身修改或增加共有屬性
let obj={}, obj2 = {]

obj.toString = 'xxx' 只會改obj自身屬性
obj2.toString 還是在原型上

偏要修改或者增加原型上的屬性
obj.proto.toString='xxx' //不推薦使用proto

Object.prototype.toString = ‘xxx'

一般來說,不要修改原型析命,會引起很多問題

js的脆弱性

修改隱藏屬性
obj.proto = null
obj.proto = common
不推薦使用proto

推薦使用Object.create
let obj = Object.create(common)
修改對象的原型主卫,要改的話一開始就改,不要后來在改

'name' in obj和obj.hasOwnProperty('name') 的區(qū)別

'name' in obj 沒有辦法判斷這個屬性是自身的還是共有的
判斷一個屬性是自身的還是共有的要用 obj.hasOwnProperty('toString')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹃愤,一起剝皮案震驚了整個濱河市队秩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昼浦,老刑警劉巖馍资,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異关噪,居然都是意外死亡鸟蟹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門使兔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來建钥,“玉大人,你說我怎么就攤上這事虐沥⌒芫” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵欲险,是天一觀的道長镐依。 經(jīng)常有香客問我,道長天试,這世上最難降的妖魔是什么槐壳? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮喜每,結(jié)果婚禮上务唐,老公的妹妹穿的比我還像新娘雳攘。我一直安慰自己,他們只是感情好枫笛,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布吨灭。 她就那樣靜靜地躺著,像睡著了一般刑巧。 火紅的嫁衣襯著肌膚如雪喧兄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天海诲,我揣著相機與錄音繁莹,去河邊找鬼檩互。 笑死特幔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的闸昨。 我是一名探鬼主播蚯斯,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饵较!你這毒婦竟也來了拍嵌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤循诉,失蹤者是張志新(化名)和其女友劉穎横辆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茄猫,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡狈蚤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了划纽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脆侮。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖勇劣,靈堂內(nèi)的尸體忽然破棺而出靖避,到底是詐尸還是另有隱情,我是刑警寧澤比默,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布幻捏,位于F島的核電站,受9級特大地震影響命咐,放射性物質(zhì)發(fā)生泄漏粘咖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一侈百、第九天 我趴在偏房一處隱蔽的房頂上張望瓮下。 院中可真熱鬧翰铡,春花似錦、人聲如沸讽坏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽路呜。三九已至迷捧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胀葱,已是汗流浹背漠秋。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抵屿,地道東北人庆锦。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像轧葛,于是被迫代替她去往敵國和親搂抒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

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

  • 對象 定義 無序的數(shù)據(jù)結(jié)婚 鍵值對的集合 寫法 * let obj = { 'name' : 'rain' , '...
    TheTwoWorld閱讀 141評論 0 0
  • 1. 聲明對象 對象的定義無序的數(shù)據(jù)集合尿扯;鍵值對的集合 聲明對象兩種方法 let obj = { 'name': ...
    Yandhi233閱讀 138評論 0 0
  • 對象 ? 定義無序的數(shù)據(jù)集合鍵值對的集合? 寫法 ? 細節(jié)鍵名是字符串求晶,不是標識符,可以包含任意字符引號可省略衷笋,省...
    茜Akane閱讀 265評論 0 0
  • JS的數(shù)據(jù)類型 數(shù)字(Number) 字符串(String) 布爾(Boolean) 符號(Symbol) 空(U...
    2b61575c37fd閱讀 306評論 0 0
  • 一芳杏、聲明對象的兩種方法(對象:無序的數(shù)據(jù)集合&鍵值對的集合) ·簡易聲明:let obj = { 'name' :...
    scotton閱讀 257評論 0 0