自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Javascript私有成員的實(shí)現(xiàn)方式

開發(fā) 前端
在OO泛濫的年代,來看看Javascript私有成員是怎么實(shí)現(xiàn)的,以及各種類成員的實(shí)現(xiàn)方式。希望本文能給大家?guī)韼椭?/div>

我之前買過一本書《Javascript高級(jí)程序設(shè)計(jì)》 Nicholas C.Zakas 著

總體來講這本書還是可以的,但看完這本書還留了幾個(gè)問題一直困擾著我,如js中私有變量的實(shí)現(xiàn),prototype等,經(jīng)過自己一系列測(cè)試,現(xiàn)在終于弄明白了。

很多書上都是說,Javascript是不能真正實(shí)現(xiàn)Javascript私有成員的,因此在開發(fā)的時(shí)候,統(tǒng)一約定 __ 兩個(gè)下劃線開頭為私有變量。

后來,發(fā)現(xiàn)Javascript中閉包的特性,從而徹底解決了Javascript私有成員的問題。

  1.  function testFn(){  
  2.        var _Name;//定義Javascript私有成員  
  3.        this.setName = function(name){  
  4.           _Name = name; //從當(dāng)前執(zhí)行環(huán)境中獲取_Name  
  5.        }  
  6.        this.getName = function(){  
  7.           return _Name;  
  8.        }  
  9. }// End testFn  
  10. var test = testFn();  
  11. alert(typeof test._Name === "undefined")//true  
  12. test.setName("KenChen"); 

test._Name 根本訪問不到,但是用對(duì)象方法能訪問到,因?yàn)殚]包能從當(dāng)前的執(zhí)行環(huán)境中獲取信息。

接下來我們看看,共有成員是怎樣實(shí)現(xiàn)的

  1. function testFn(name){  
  2.    this.Name = name;  
  3.    this.getName = function(){  
  4.       return this.Name;  
  5.    }  
  6. }  
  7. var test = new testFn("KenChen");  
  8. test.getName(); //KenChen  
  9. test.Name = "CC";  
  10. est.getName();//CC 

接下來在看看類靜態(tài)變量是怎樣實(shí)現(xiàn)的

  1. function testFn(){  
  2. }  
  3. testFn.Name = "KenChen";  
  4. alert(testFn.Name);//KenChen  
  5. testFn.Name = "CC";  
  6. alert(testFn.Name);//CC 

關(guān)于Portotype,繼承等以后的博文中敘述。

【編輯推薦】

  1. JavaScript類和繼承:prototype屬性
  2. JavaScript類和繼承:this屬性
  3. ExtJS Grid Tooltip的3+1種實(shí)現(xiàn)方式總結(jié)
  4. JavaScript異步調(diào)用框架的鏈?zhǔn)綄?shí)現(xiàn)
  5. JavaScript異步調(diào)用框架的jQuery風(fēng)格鏈?zhǔn)秸{(diào)用
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2015-07-06 09:59:56

JavaScript私有成員

2010-07-26 09:20:48

C#

2012-05-10 15:21:50

JavaScript

2022-03-28 20:57:31

私有屬性class屬性和方法

2011-03-07 09:41:10

JavaScript

2010-01-21 13:48:30

C++基類

2014-06-19 10:43:37

AndroidScrollerView平滑滾動(dòng)

2010-09-28 15:12:27

Javascript

2011-03-10 14:19:56

JavaScript

2023-07-31 07:43:07

Java語言表達(dá)式變量

2011-03-08 09:15:04

JavaScript

2023-05-22 15:35:10

JavaScriptWeb開發(fā)

2017-10-17 11:04:24

2011-08-15 09:15:09

私有云云計(jì)算

2016-06-21 11:19:39

云計(jì)算混合云公有云

2025-02-26 12:21:08

2022-01-04 16:35:42

C++Protected關(guān)鍵字

2024-01-29 16:47:44

函數(shù)封裝開發(fā)

2015-11-10 09:34:58

JavaScript方式

2009-09-10 14:52:55

C# get
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)