JavaScript私有屬性和靜態屬性
JavaScript中並沒有私有屬性和靜態屬性這兩個概念,不過可以模擬實現。
下面就簡單介紹一下如何模擬實現這兩個屬性。
一.私有屬性:
關於私有屬性的概念這裡就不介紹了。關於實現私有屬性的方法其實非常的簡單,就是在建構函式中宣告一個私有變數(區域性變數),然後再在建構函式中定義一個公共方法來方位這個私有變數,就類似於C#中的get和set訪問器。
下面是一段例項私有屬性程式碼:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function web(webName) { var webName=webName; web.prototype.getWebName=function(){ return webName; } } firstWeb=new web("螞蟻部落"); console.log(firstWeb.getWebName()); secondWeb=new web("新銳網路"); console.log(firstWeb.getWebName());
以上程式碼中,建立了兩個物件例項,彈出的值也各有不同。
所謂的例項屬性,就是在建立的各個物件例項中,屬性之間是互不相關的。
程式碼分析:
webName是建構函式的私有變數,當然在外部不能夠直接訪問,於是通過使用prototype為建構函式新增了一個函式,此函式可以返回私有變數webName,其實這就是利用了閉包的原理實現的此效果
二.靜態屬性:
靜態屬性可以實現資料全域性共享。實現它的方式也是非常簡單的,首先在建構函式的外部宣告一個私有變數,然後通過prototype為此建構函式新增兩個函式可以設定和方位建構函式外部宣告的私有變數,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼(function(){ var staticValue="新銳網路"; web=function(webName){ this.webName=webName; }; web.prototype.getStatic=function(){ return staticValue; } web.prototype.setStatic=function(value){ staticValue=value; } })() var firstWeb=new web(); firstWeb.setStatic("螞蟻部落"); console.log(firstWeb.getStatic()); var secondWeb=new web(); console.log(secondWeb.getStatic());
建立的兩個物件例項都可以彈出"螞蟻部落",兩個物件例項的getStatic()函式都是訪問的變數staticValue。
相關文章
- JavaScript 靜態屬性與靜態方法JavaScript
- 靜態屬性
- 深入理解JavaScript類與物件:揭秘類欄位和靜態屬性的妙用,js靜態屬性和例項屬性JavaScript物件JS
- JavaScript公有屬性、私有屬性、公有方法和原型方法JavaScript原型
- js 物件方法、類方法、原型方法的區別;私有屬性、公有屬性、公有靜態屬性的區別JS物件原型
- 私有屬性
- 類的靜態屬性和方法
- TypeScript 類靜態屬性TypeScript
- [譯] 繼承 JavaScript 類中的靜態屬性繼承JavaScript
- PHP 中 static 靜態屬性和靜態方法的呼叫PHP
- SQL Server 生成C#公共實體屬性和私有屬性SQLServerC#
- 修改物件私有屬性物件
- Delphi 類的靜態屬性 (轉)
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- js 私有方法屬性和公有方法屬性簡單介紹JS
- javascript layerX和layerY屬性JavaScript
- 私有setter公有getter屬性
- defer 屬性和 async 屬性
- [React]屬性和狀態React
- Object C學習筆記10-靜態方法和靜態屬性Object筆記
- 為什麼 JavaScript 的私有屬性使用 # 符號JavaScript符號
- javascript獲取物件直接量中的屬性和屬性值JavaScript物件
- 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