javascript 之封裝技巧

  • 技術--- 閉包

javascript中的對象屬性都是公開的,外界均可訪問到,例:javascript

1 function cat(){
2     this.name = '貓';
3     this.climb = function(){
4         alert('我會爬樹!');    
5     }
6 }
7 var boshi = new cat();
8 alert(boshi.name);
9 boshi.climb();

cat對象中被實例化,name屬性和climb方法都能被直接調用,沒有被私有,可是咱們能夠用閉包模擬封裝java

 1 function cat(){
 2     var age = 28;
 3     this.name = '貓';
 4     this.climb = function(){
 5         alert('我會爬樹!');    
 6     }
 7     this.tellage = function(addage){
 8         return '我通常告訴別人年齡是'+(age+addage);
 9     }
10 }
11 var boshi = new cat();
12 alert(boshi.name);
13 alert(boshi.age);        //因爲age是局部變量,因此訪問不了
14 alert(boshi.tellage(-10));    //tellage方法是個模擬開放接口,開放年齡

這裏的age就可模擬成一個私有屬性,運用閉包(指在一個函數內定義的局部變量,被此函數內定義子函數所調用,也就是子函數訪問上級函數定義的變量)可模擬封裝,固然封裝私有方法也能夠的。閉包

相關文章
相關標籤/搜索