1. 程式人生 > 其它 >開發中物件Object常用方法

開發中物件Object常用方法

技術標籤:jsjavascript

entries()

	對鍵值對遍歷,返回的是一個鍵值對陣列
	Object.entries(obj)
 let obj = {
    name: 'kaolin',
    age: 18,
    birthday: '1998-05-20'
  }
  console.log(Object.entries(obj));

在這裡插入圖片描述

keys()

	對鍵名遍歷,返回的是一個key組成的陣列
	Object.keys(obj)

values()

	對鍵值遍歷,返回的是一個鍵值組成的陣列
	Object.values(obj)

assign()

	多個物件拼接最後返回一個物件
	Object.assign(obj1,obj2,boj3)
let obj = {
    name: 'kaolin',
    age: 18,
    birthday: '1998-05-20'
  }
  console.log(Object.assign({},obj,{school: 'university'}));

在這裡插入圖片描述

create()

	用指定的原型物件和屬性建立一個新物件。新物件的隱式原型指向原型物件,但是改變新物件的值時不會
改變原型物件的值
let obj = {
    name: 'kaolin',
    age: 18,
    birthday: '1998-05-20'
  }
  let obj1 = Object.create
(obj) obj1.age = 19 console.log(obj.age); //18 console.log(obj1.age); //19

在這裡插入圖片描述

defineProperty()

	直接在物件上定義新屬性,或修改物件上的現有屬性,然後返回物件。
	
	Obeject.defineProperty(obj, 'prop', {
	value: '1'  //屬性值
	enumerable: false,  //是否可列舉,如果為false,則在遍歷的時候獲取不到改屬性
	configurable: false,  //是否可刪除,如果為false,則不能刪除該屬性
	writable: false,   //是否可讀寫,如果為false,則不能修改該屬性
	})
let obj = {
    name: 'kaolin',
    age: 18,
    birthday: '1998-05-20'
  }

  let obj1 = Object.defineProperty(obj, 'sex', {
    value: '男',
    configurable: false,
    enumerable: false,
    writable: false
  })
  console.log(Object.entries(obj1))

在這裡插入圖片描述
因為設定了enumerable:false,所以sex屬性不可以被列舉到

getOwnPropertyNames()

		返回一個數組,其中包含給定物件自己的所有可列舉和不可列舉屬性的名稱。
	let obj = {
    name: 'kaolin',
    age: 18,
    birthday: '1998-05-20'
  }

  let obj1 = Object.defineProperty(obj, 'sex', {
    value: '男',
    configurable: false,
    enumerable: false,
    writable: false
  })
  console.log(Object.getOwnPropertyNames(obj1))

在這裡插入圖片描述