JavaScript >> Javascript 文檔 >  >> Tags >> object

ECMAScript 3.1 靜態對象方法原型

在為我即將出版的《Professional JavaScript, 2nd Edition》一書編寫 ECMAScript 3.1 部分時,我發現創建一些靜態對象方法很有用。對於那些不知道的人,ECMAScript 3.1 在 Object 上定義了幾個方法,旨在更容易管理對象屬性。這些方法可用於定義新屬性,包括可枚舉的、只讀的或與標准開發人員定義的屬性不同的屬性。通過閱讀規範,確定如何使用這些方法有點困難,所以我想我會使用現有的 ECMAScript 3.0 功能創建盡可能多的方法,以確保我完全理解這些功能。結果是一個小型庫,其中包含以下 ECMAScript 3.1 靜態對象方法的基本版本:

  • Object.create() – 基本功能適用於所有瀏覽器。非 IE 瀏覽器允許定義 getter 和 setter。沒有瀏覽器可以定義 enumerable , flexible , 和 writable 在屬性上,因為此功能在當今的瀏覽器中不可用。
  • Object.clone() – 基本功能適用於所有瀏覽器。
  • Object.defineProperty() – 與 Object.create() 相同的限制 .
  • Object.defineProperties() – 與 Object.create() 相同的限制 .
  • Object.getPrototypeOf() – 由於缺少 __proto__,在 IE 中可能不准確 支持。
  • Object.getOwnPropertyNames() – 不會返回不可枚舉的屬性。
  • Object.getOwnPropertyDescriptor()enumerable , flexible , 和 writable 始終設置為 true。 IE 無法檢索 getter 和 setter。
  • Object.keys() – 按預期工作。

有幾個靜態方法不能用當前的技術實現,所以我什至沒有費心去嘗試。因此,以下六種方法不包括在內:

  • Object.freeze()
  • Object.preventExtensions()
  • Object.seal()
  • Object.isFrozen()
  • Object.isExtensible()
  • Object.isSealed()

您可以在此處下載我的靜態對像庫的源代碼以及一些使用示例。不建議將該庫用於生產用途,但如果您想使用該功能以查看未來會發生什麼,它可能會很有用。如果您想了解更多關於靜態對象方法的信息,請參考這篇文檔:Proposed ECMAScript 3.1 Static Object Functions:Use Cases and Rationale。


Tutorial JavaScript 教程
  1. React-query 系列第 1 部分:基本的 react-query 設置

  2. 我是如何創建最佳在線 JSON 格式化程序的

  3. JavaScript 中的函數

  4. Chrome 開發者峰會網站:案例研究

  5. 在客戶端的 JavaScript 中訪問 JPEG EXIF 旋轉數據

  6. 看一下這個 !不太好,它只是 react js 中 props 的練習。

  7. 您應該採用微前端架構的 5 個理由

  1. REACT - 函數組件不是函數聲明

  2. 解壓 js.map 文件

  3. 從下拉列表中選擇一個項目並在 React native 的另一個組件中使用該值

  4. Elm:關於實際代碼更改的開發經驗的簡短示例(視頻)

  5. 如果未檢查任何內容,則將計數器設置回 0 Javascript

  6. 開發 Chrome 上下文菜單應用程序的指南

  7. 適用於 Node.js 的 Application Insights SDK 第 4 部分:開箱即用遙測 - 基礎知識和控制台

  1. 服務人員

  2. 命令式和聲明式編程

  3. 學習如何通過編寫動態圖片框架來使用 JavaScript 操作 CSS

  4. 最佳反應原生模板 2020。