Object 對(duì)象

分為 Object 靜態(tài)方法和Object 實(shí)例方法

  • 靜態(tài)方法就是直接定義在Object 對(duì)象上
  • 實(shí)力方法是定義在 Object.prototype上的弓摘,Object的實(shí)例可以使用(凡是定義在Object.prototype 上的屬性和方法触幼,可以被所有Object實(shí)例對(duì)象共享

Object靜態(tài)方法

1. Object.keys Object.getOwnPropertyNames

Object.keys方法和Object.getOwnPropertyNames方法都用來(lái)遍歷對(duì)象的屬性

var obj = {
  p1: 123,
  p2: 456
};

Object.keys(obj) // ["p1", "p2"]
Object.getOwnPropertyNames(obj); //["p1", "p2"]

Object.keys方法只返回可枚舉的屬性, Object.getOwnPropertyNames方法還返回不可枚舉的屬性名

  var a = ['Hello', 'World'];

Object.keys(a) // ["0", "1"]
Object.getOwnPropertyNames(a) // ["0", "1", "length"]
2. Object.getOwnPropertyDescriptor()

Object.getOwnPropertyDescriptor()方法可以獲取屬性描述對(duì)象放接。它的第一個(gè)參數(shù)是目標(biāo)對(duì)象,第二個(gè)參數(shù)是一個(gè)字符串埃疫,對(duì)應(yīng)目標(biāo)對(duì)象的某個(gè)屬性名

var obj = {
  p: 'a' 
}
Object.getOwnPropertyDescriptor(obj, 'p')
// Object  {
  value: "a",
  writable: true,
enumerable: true,
configurable: true
}
3. Object.defineProperty()

Object.defineProperty() 方法允許通過(guò)屬性描述對(duì)象伏恐,定義或者修改一個(gè)屬性,然后返回修改后的對(duì)象
Object.defineProperty(object, propertyName, atttributesObject)

Object實(shí)例方法

1. Object.prototype.valueOf()

valueOf方法的作用是返回一個(gè)對(duì)象的“值”栓霜,默認(rèn)情況下返回對(duì)象本身翠桦。
valueOf方法的主要用途是,JavaScript 自動(dòng)類型轉(zhuǎn)換時(shí)會(huì)默認(rèn)調(diào)用這個(gè)方法

var obj = new Object();
1 + obj // "1[object Object]"
obj.valueOf = function (o) {
  return 2;
}
obj + 1; //3
2. Object.prototype.toString()

toString方法的作用是返回一個(gè)對(duì)象的字符串形式胳蛮,默認(rèn)情況下返回類型字符串销凑。

var o1 = new Object();
o1.toString() // "[object Object]"

var o2 = {a:1};
o2.toString() // "[object Object]"

通過(guò)自定義toString方法,可以讓對(duì)象在自動(dòng)類型轉(zhuǎn)換時(shí)仅炊,得到想要的字符串形式

var obj = new Object();

obj.toString = function () {
  return 'hello';
};

obj + ' ' + 'world' // "hello world"

應(yīng)用: 判斷數(shù)據(jù)類型

Object.prototype.toString.call(2) // "[object Number]"
Object.prototype.toString.call('1') // "[object String]"
Object.prototype.toString.call(true) // "[object Boolean]"
Object.prototype.toString.call(undefined) // "[object Undefined]"
Object.prototype.toString.call(null) // "[object Null]"
Object.prototype.toString.call(Math) // "[object Math]"
Object.prototype.toString.call({}) // "[object Object]"
Object.prototype.toString.call([]) // "[object Array]"
3. Object.prototype.toLocaleString()

Object.prototype.toLocaleString方法與toString的返回結(jié)果相同斗幼,也是返回一個(gè)值的字符串形式。
這個(gè)方法的主要作用是留出一個(gè)接口抚垄,讓各種不同的對(duì)象實(shí)現(xiàn)自己版本的toLocaleString蜕窿,用來(lái)返回針對(duì)某些地域的特定的值。
目前呆馁,主要有三個(gè)對(duì)象自定義了toLocaleString方法桐经。

  • Array.prototype.toLocaleString()
  • Number.prototype.toLocaleString()
  • Date.prototype.toLocaleString()
4. Object.prototype.hasOwnProperty()

Object.prototype.hasOwnProperty方法接受一個(gè)字符串作為參數(shù),返回一個(gè)布爾值浙滤,表示該實(shí)例對(duì)象自身是否具有該屬性阴挣。

var obj = new Object {
  p: '123'
}
obj.hasOwnProperty('p') // true
obj.hasOwnProperty('toString') // false
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瓷叫,隨后出現(xiàn)的幾起案子屯吊,更是在濱河造成了極大的恐慌,老刑警劉巖摹菠,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盒卸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡次氨,警方通過(guò)查閱死者的電腦和手機(jī)蔽介,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)煮寡,“玉大人虹蓄,你說(shuō)我怎么就攤上這事⌒宜海” “怎么了薇组?”我有些...
    開(kāi)封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)坐儿。 經(jīng)常有香客問(wèn)我律胀,道長(zhǎng),這世上最難降的妖魔是什么貌矿? 我笑而不...
    開(kāi)封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任炭菌,我火速辦了婚禮,結(jié)果婚禮上逛漫,老公的妹妹穿的比我還像新娘黑低。我一直安慰自己,他們只是感情好酌毡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布克握。 她就那樣靜靜地躺著,像睡著了一般阔馋。 火紅的嫁衣襯著肌膚如雪玛荞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天呕寝,我揣著相機(jī)與錄音勋眯,去河邊找鬼。 笑死下梢,一個(gè)胖子當(dāng)著我的面吹牛客蹋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孽江,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼讶坯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了岗屏?” 一聲冷哼從身側(cè)響起辆琅,我...
    開(kāi)封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤漱办,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后婉烟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體娩井,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年似袁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洞辣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昙衅,死狀恐怖扬霜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情而涉,我是刑警寧澤著瓶,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站婴谱,受9級(jí)特大地震影響蟹但,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谭羔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一华糖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘟裸,春花似錦客叉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至沙郭,卻和暖如春佛呻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背病线。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工吓著, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人送挑。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓绑莺,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親惕耕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纺裁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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

  • 概述 JavaScript 原生提供Object對(duì)象。JavaScript 的所有其他對(duì)象都繼承自O(shè)bject對(duì)象...
    oWSQo閱讀 273評(píng)論 0 1
  • 概述 JavaScript 原生提供Object對(duì)象(注意起首的O是大寫)司澎,本章介紹該對(duì)象原生的各種方法欺缘。 Jav...
    許先生__閱讀 464評(píng)論 0 3
  • 1 概述 JavaScript 的所有其他對(duì)象都繼承自O(shè)bject對(duì)象栋豫,即那些對(duì)象都是Object的實(shí)例。 Obj...
    徵羽kid閱讀 281評(píng)論 0 0
  • 概述 JavaScript 原生提供Object對(duì)象(注意起首的O是大寫) JavaScript 的所有其他對(duì)象都...
    Dec停云閱讀 286評(píng)論 2 1
  • 首先一個(gè)是對(duì)JS中Object的理解:JavaScript中函數(shù)是一等公民谚殊,寫在代碼中的 Array/Object...
    皮皮坤666閱讀 1,676評(píng)論 0 3