1. 程式人生 > 實用技巧 >Object 函式

Object 函式

1、Object.assign(target, source, ?...source)

  target: 目標物件

  source: 來源物件(可多個)

  通過複製一個或多個物件來建立一個新的物件。

  可以發現,該方法直接作用於目標物件,屬性及值更新成了源物件的屬性及值。

2、Object.create(o, ?properties)

  o: 物件的原型物件

  properties: 值的屬性

  使用指定的原型物件和屬性建立一個新物件。

  aa 繼承了 a

  追加了個 age 屬性,值是 'b'

  注:物件屬性

3、Object.defineProperty(o, prototypeKey, attributes)

  o: 目標物件

  prototypeKey: 屬性名

  attributes: 用於要描述該屬性的屬性配置

  給物件新增一個屬性並指定該屬性的配置。

  這裡給 空物件 a 一個 name 屬性,且賦值為 'a',同時不可寫,這樣後面的 a.name 賦值則不會成功~

4、Object.defineProperties(o, properties)

  o: 目標物件

  properties: 多個描述屬性的屬性配置

  給物件新增多個屬性並分別指定它們的配置。

  相當於可以批量新增物件屬性

5、Object.entries(o)

  o: 目標物件

  返回給定物件自身可列舉屬性的[key, value]

陣列。

6、Object.freeze(o)

  o: 目標物件

  凍結物件:其他程式碼不能刪除或更改任何屬性。

  啥都不能動,只能看著

7、Object.getOwnPropertyDescriptor(o, propertyKey)

  o: 目標物件

  propertyKey: 屬性名

  返回物件指定的屬性配置。

8、Object.getOwnPropertyNames(o)

  o: 目標物件

  返回一個數組,它包含了指定物件所有的可列舉或不可列舉的屬性名。

  只含字串屬性

9、Object.getOwnPropertySymbols(o)

  o: 目標物件

  返回一個數組,它包含了指定物件自身所有的符號屬性。

  因為所有的物件在初始化的時候不會包含任何的 Symbol,除非你在物件上賦值了 Symbol否則Object.getOwnPropertySymbols()只會返回一個空的陣列。

10、Object.getPrototypeOf(o)

  o: 目標物件

  返回指定物件的原型物件。

11、Object.is(value1, value2)

  value1、value2: 要比較的2個值

  比較兩個值是否相同。所有 NaN 值都相等(這與==和===不同)。

  同時要注意

12、Object.isExtensible(o)

  o: 目標物件

  判斷物件是否可擴充套件。

  預設情況下,物件是可擴充套件的:即可以為他們新增新的屬性。以及它們的__proto__屬性可以被更改。

  Object.preventExtensionsObject.sealObject.freeze方法都可以標記一個物件為不可擴充套件(non-extensible)

13、Object.isFrozen(o)

  o: 目標物件

  判斷物件是否已經凍結。

14、Object.isSealed(o)

  o: 目標物件

  判斷物件是否已經密封。

  如果這個物件是密封的,則返回true,否則返回false。密封物件是指那些不可擴充套件的,且所有自身屬性都不可配置且因此不可刪除(但不一定是不可寫)的物件。

15、Object.keys()

  返回一個包含所有給定物件自身可列舉屬性名稱的陣列。

16、Object.preventExtensions(o)

  o: 目標物件

  防止物件的任何擴充套件。

  僅阻止新增自身的屬性。但其物件型別的原型依然可以新增新的屬性。

17、Object.seal(o)

  o: 目標物件

  防止其他程式碼刪除物件的屬性。

  密封一個物件會讓這個物件變的不能新增新屬性,且所有已有屬性會變的不可配置。屬性不可配置的效果就是屬性變的不可刪除,以及一個數據屬性不能被重新定義成為訪問器屬性,或者反之。但屬性的值仍然可以修改。

18、Object.setPrototypeOf(o, prototype)

  o: 目標物件

  prototype: 要繼承的新原型

  設定物件的原型(即內部[[Prototype]]屬性)。

19、Object.values(o)

  o: 目標物件

  返回給定物件自身可列舉值的陣列。

  source:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object