JavaScript 例項屬性
典型的面嚮物件語言中,屬性可以分為例項屬性和靜態屬性。
本文會由靜態屬性引出例項屬性,並結合程式碼例項對其做一下著重介紹。
更多關於class 類內容參閱JavaScript class 類一章節。
一.靜態屬性:
直接通過類訪問的屬性就是靜態屬性。
ES2015之前並沒有靜態屬性的標準定義,不過大致可以模擬實現。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function Antzone(){ // code } Antzone.age=5; console.log(Antzone.age);
程式碼執行效果截圖如下:
上述程式碼中,為Antzone新增了一個靜態屬性age。
看起來非常的不專業,與標準面嚮物件語言差距甚大。
ES2015新增靜態屬性概念,具體參閱JavaScript static 靜態方法和靜態屬性一章節。
二.例項屬性:
與靜態屬性對應的是例項屬性,它需要使用物件例項引用。
例項屬性可以包括:
(1).原型鏈上的屬性。
(2).非原型鏈的自有屬性。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function Antzone() { this.webName = "螞蟻部落"; } Antzone.prototype.address="青島市南區"; class Mayi { constructor() { this.webName = "螞蟻部落"; } } let ant = new Antzone(); let mayi = new Mayi(); console.log(ant.webName); console.log(ant.address); console.log(mayi.webName);
程式碼執行效果截圖如下:
程式碼分析如下:
(1).通過this直接定於建構函式中的是自有屬性,當然也是例項屬性,需要使用物件例項引用。
(2).定義在原型鏈上的也屬於例項屬性,需要使用物件例項引用。
(3).ES2015新增的類中,如果不考慮原型,屬性只能定義在constructor建構函式中,定義在其中的是自有屬性,也是例項屬性。類本質是函式,具有prototype原型,自然也可以使用原型定義屬性,類原型上的屬性也是例項屬性。
特別說明:新語法規定也可以在類中建構函式之外定義屬性,沒必要定義在建構函式之中。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼class Antzone { address="青島市南區"; constructor() { this.webName = "螞蟻部落"; } } let ant= new Antzone(); console.log(ant.address);
上述是新的寫法,不過當前瀏覽器支援度非常的低。
程式碼分析如下:
(1).新寫法之前,在類中定義屬性需要放置於constructor建構函式之中。
(2).新寫法可以在類中直接定義,沒必要放置於建構函式之中,也屬於例項屬性。
(3).上述程式碼中address屬性就是採用新的語法形式,更加清晰。
相關文章
- javascript的cssText屬性程式碼例項JavaScriptCSS
- Python 動態新增例項屬性,例項方法,類屬性,類方法Python
- Python 類的屬性與例項屬性Python
- javascript通用獲取元素樣式屬性值程式碼例項JavaScript
- javascript動態改變iframe元素src屬性程式碼例項JavaScript
- vue例項的屬性和方法Vue
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- vue例項中watch屬性的使用Vue
- js prototype屬性使用程式碼例項JS
- 深入理解JavaScript類與物件:揭秘類欄位和靜態屬性的妙用,js靜態屬性和例項屬性JavaScript物件JS
- Python類屬性和例項屬性分別是什麼?Python
- 關於Python類屬性與例項屬性的討論Python
- 為textarea新增maxlength屬性程式碼例項
- css屬性選擇器程式碼例項CSS
- Python (類)例項方法的特殊屬性Python
- JavaScript files 屬性JavaScript
- JavaScript childElementCount 屬性JavaScript
- JavaScript offsetX 屬性JavaScript
- JavaScript firstChild屬性JavaScript
- JavaScript classList 屬性JavaScript
- JavaScript cells 屬性JavaScript
- JavaScript rows 屬性JavaScript
- JavaScript nodeName 屬性JavaScript
- JavaScript rowIndex 屬性JavaScriptIndex
- JavaScript tagName 屬性JavaScript
- JavaScript parentNode 屬性JavaScript
- JavaScript prototype屬性JavaScript
- JavaScript NaN 屬性JavaScriptNaN
- JavaScript Infinity 屬性JavaScript
- JavaScript className 屬性JavaScript
- JavaScript style 屬性JavaScript
- JavaScript firstElementChild 屬性JavaScript
- JavaScript私有屬性和靜態屬性JavaScript
- Python例項屬性的優先順序分析Python
- outerText和innerText屬性的區別例項介紹
- css3 filter屬性作用演示程式碼例項CSSS3Filter
- Python的類例項屬性訪問規則Python
- 描述符:例項屬性遮蓋方法的原因