1. 程式人生 > >4. 屬性描述符_訪問描述符

4. 屬性描述符_訪問描述符

1. 屬性描述符

描述屬性的屬性

writable  決定屬性是否可以寫入(是否是一個只讀屬性)

enumerable  決定屬性是否可以for in列舉(遍歷)

configurable  決定屬性是否可以重新配置或者刪除

2. 訪問描述符

get 屬性獲取時呼叫的方法

set 屬性設定時呼叫的方法

使用:

Object.defineProperty(物件, 屬性名, {value: xxx})

Object.defineProperties(物件, {屬性名: {value: xxx}})

刪除屬性    delete xxx

密封物件    Object.seal(物件);

- 不可以新增新屬性

- 不可以刪除

- 可以讀寫操作

凍結物件    Object.freeze(物件);

- 只能讀

- 不能寫入、刪除、新增操作

深度凍結:

  •     function deepFreeze(obj) {
            if (typeof obj !== 'object')return;
            //預設情況下,先給第一層凍結
            Object.freeze(obj);
            //遍歷物件
    for (var key in obj) { //獲取屬性值 var value = obj[key]; deepFreeze(value); } }

3. web workers

H5 規範提供的 js 分執行緒的實現

Worker: 建構函式, 載入分執行緒執行的js檔案

Worker.prototype.onmessage :  用於接收另一個執行緒的回撥函式

Worker.prototype.postMessage :  向另一個執行緒傳送訊息

使用場景:一般大量計算的任務會交給分執行緒完成

4. es5 擴充套件的內容

嚴格模式

let 和 const 用來宣告變數的關鍵字

  • 在塊作用域內有效
  • 不能重複宣告
  • 不會預處理,  不存在提升
  • const定義的變數不能修改

JSON 方法

Object 擴充套件

Array 擴充套件

findIndex

map 加工處理陣列的每一項值

filter 過濾陣列中不需要的值

reduce 統計、求和

Funtion 擴充套件