後盾人:JS課程第十章(物件)
阿新 • • 發佈:2021-09-03
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 //對應屬性是否可以被刪除/是都可以重新設定 }