for/in、Object.keys()矗愧、Object.getOwnPropertyNames()

for/in:

是ES3中的方法灶芝,用來遍歷對象(集合)的方法郑原;

不過,for/in 會輸出自身以及原型鏈上可枚舉的屬性夜涕,可以使用 hasOwnProperty 來過濾原型鏈上的屬性

Object.keys():

是ES5中方法犯犁,用來獲取對象自身可枚舉的屬性鍵

原型中屬性和設(shè)置了不可枚舉的屬性,都獲取不到

效果類似 for in+hasOwnProperty

Object.getOwnPropertyNames()

是ES5中方法女器,用來獲取對象自身的全部屬性名

不論自身對象是否設(shè)置了可枚舉酸役,都可以獲取到

擴展:這邊借鑒別人總結(jié)的對象的屬性和方法

(1) Object.create

創(chuàng)建一個擁有指定原型和若干個指定屬性的對象
Object.create(Object.prototype, {
    a: {
        value: 1,
        writable: true,
        configurable: true
    }
})

(2) Object.defineProperty

直接在一個對象上定義一個新屬性,或者修改一個已經(jīng)存在的屬性驾胆, 并返回這個對象涣澡。
Object.defineProperty(obj, 'key', {
    enumerable: false,   // 能否被枚舉
    configurable: false, // 能否被改變
    writable: false,     // 能否可寫
    value: 'static'
})

(3) Object.defineProperties

在一個對象上添加或修改一個或者多個自有屬性,并返回該對象丧诺。
var obj = {};
Object.defineProperties(obj, {
    'property1': {
        value: true,
        writable: true
    },
    'property2': {
        value: 'hello',
        writable: false     
    }
})

(4) Object.getPrototypeOf

返回指定對象的原型(也就是該對象內(nèi)部屬性[Prototype]的值)
Object.getPrototypeOf({}) === Object.prototype

ES5之前入桂,要達到上面同樣的方法,只能使用 constructor

(5) Object.keys

Object.keys() 方法會返回一個由給定對象的所有可枚舉自身屬性的屬性名組成的數(shù)組驳阎,數(shù)組中屬性名的排列順序和使用for-in循環(huán)遍歷該對象時返回的順序一致(兩者的主要區(qū)別是 for-in 還會遍歷出一個對象從其原型鏈上繼承到的可枚舉屬性)

(6) Object.getOwnPropertyNames

Object.getOwnPropertyNames()方法返回一個由指定對象的所有自身屬性的屬性名(包括不可枚舉屬性)組成的數(shù)組抗愁。

其和Object.keys的區(qū)別就是能夠獲取自身的全部屬性,包括不可枚舉屬性呵晚。

(7) Object.preventExtensions

讓一個對象變的不可擴展蜘腌,也就是永遠不能再添加新的屬性。
Object.preventExtensions(obj)

(8) Object.isExtensible

判斷一個對象是否是可擴展的(是否可以在它上面添加新的屬性)饵隙。

(9) Object.seal

讓一個對象密封撮珠,并返回被密封后的對象
密封對象是指那些不能添加新的屬性,不能刪除已有屬性癞季,以及不能修改已有屬性的可枚舉性劫瞳、可配置性、可寫性绷柒,但可能可以修改已有屬性的值的對象志于。

(10) Object.isSealed

判斷一個對象是否是密封的(sealed)。

(11)Object.freeze

凍結(jié)一個對象废睦。凍結(jié)對象是指那些不能添加新的屬性伺绽,不能修改已有屬性的值,不能刪除已有屬性嗜湃,以及不能修改已有屬性的可枚舉性奈应、可配置性、可寫性的對象购披。也就是說杖挣,這個對象永遠是不可變的。該方法返回被凍結(jié)的對象刚陡。

(12)Object.isFrozen

Object.isFrozen() 方法判斷一個對象是否被凍結(jié)(frozen)

(13) Object.assign

把任意多個的源對象自身的可枚舉屬性拷貝給目標對象惩妇,然后返回目標對象株汉。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市歌殃,隨后出現(xiàn)的幾起案子乔妈,更是在濱河造成了極大的恐慌,老刑警劉巖氓皱,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件路召,死亡現(xiàn)場離奇詭異,居然都是意外死亡波材,警方通過查閱死者的電腦和手機股淡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來各聘,“玉大人揣非,你說我怎么就攤上這事《阋颍” “怎么了早敬?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長大脉。 經(jīng)常有香客問我搞监,道長,這世上最難降的妖魔是什么镰矿? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任琐驴,我火速辦了婚禮,結(jié)果婚禮上秤标,老公的妹妹穿的比我還像新娘绝淡。我一直安慰自己,他們只是感情好苍姜,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布牢酵。 她就那樣靜靜地躺著,像睡著了一般衙猪。 火紅的嫁衣襯著肌膚如雪馍乙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天垫释,我揣著相機與錄音丝格,去河邊找鬼。 笑死棵譬,一個胖子當著我的面吹牛显蝌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播订咸,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼曼尊,長吁一口氣:“原來是場噩夢啊……” “哼扭屁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涩禀,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎然眼,沒想到半個月后艾船,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡高每,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年屿岂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲸匿。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡爷怀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出带欢,到底是詐尸還是另有隱情运授,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布乔煞,位于F島的核電站吁朦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏渡贾。R本人自食惡果不足惜逗宜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望空骚。 院中可真熱鬧纺讲,春花似錦、人聲如沸囤屹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牺丙。三九已至则涯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冲簿,已是汗流浹背粟判。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留峦剔,地道東北人档礁。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像吝沫,于是被迫代替她去往敵國和親呻澜。 傳聞我的和親對象是個殘疾皇子递礼,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

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