1. 程式人生 > 其它 >後盾人:JS課程第十章(物件)

後盾人:JS課程第十章(物件)

1.函式程式設計與面向物件的例項對比

let user = {
  name: "XJ",
  grade: [
    {name: "js", score: 99},
    {name: "css", score: 88},
  ],
  average() {
    let total = this.grade.reduce((t, v) => t + v.score, 0)
    return `${this.name}的成績:${total}`
  }
}
console.log(user.average());

所有和使用者user相關的內容(資料、方法等)都放在user物件中

2.屬性基本操作

let user = {
  name: "XJ",
  "age name": 18,
  }
user.name 
user["age name"]
//兩種方法都可以獲取值。常用第一種

3.解構

  解構預設值實現配置合併

function createElement(options = {}){
  let {width=200,height=100,background='red'} = options
  const div = document.createElement("div")
  div.style.width = width + "px"
  div.style.height 
= height + "px" div.style.backgroundColor = background document.body.appendChild(div) } createElement({width:120})

4.Object.assign(a,b)  //合併物件

5.物件的封裝和抽象

function User(name, age){
    let data = {name, age } //使用閉包特性對屬性進行了抽象化處理
    let info = function(){return data.age > 30 ? "中年":"青年"}
    this
.show = function(){ console.log(`${data.name}的年齡${info()}`); } } let lisi = new User("李四", 30) lisi.name = "張三" //此處不會改變建構函式lisi的值 lisi.info = function() { //此處不會改變建構函式lisi內的方法 return "" } lisi.show() //輸出“李四的年齡青年”

6.物件屬性的特徵

Object.entries(arr) 迭代

Object.getOwnPropertyDescriptor("物件", "物件的屬性")  檢視元素的屬性特徵,

Object.getOwnPropertyDescriptors("物件")  檢視元素的所有屬性特徵,

屬性的特徵

{
“value”: “值”
“writable”: true//對應屬性是否可以寫,
“enumerable”:true//對應屬性時候可以遍歷/Object.key()是否可以獲取
“configurable”: true //對應屬性是否可以被刪除/是都可以重新設定
}