js私有變量


js私有變量

一、總結

1、在js函數中定義 this.name='張三'; (函數的屬性)外部是可以訪問的,但是 var name='張三'; (函數的私有變量),這樣定義的話外部沒有辦法訪問

2、js中的變量和方法:方法就是在變量后面加上()

3、函數性公用 變量私有:JavaScript沒用私有屬性的概念;所有的屬性都是公用的; 但是js中有私有變量的概念

4、函數的外部訪問:外部實例化一個對象,然后對象.屬性或者方法就可以訪問了  var p=new People() alert(p.getname())

5、特權方法(就是以定義屬性的方法去定義私有變量,因為屬性外部是可以訪問的,這個定義屬性的方法在函數內部可以訪問函數的私有變量):內部創建一個閉包,閉包可以訪問私有變量;因此創建用於訪問私有變量的公用方法,稱作特權方法  this.getsay=function(){ return say() }

 

二、js私有變量

私有變量

JavaScript沒用私有屬性的概念;所有的屬性都是公用的;

私有變量的概念:在任何函數中定義的變量,都是私有變量,因為不能在函數外部訪問這些變量;

  • 私有變量:包括函數的參數/局部變量和在函數內部定義的其他函數;
  • 特權方法:內部創建一個閉包,閉包可以訪問私有變量;因此創建用於訪問私有變量的公用方法,稱作特權方法
  • 可以通過構造方法傳參來訪問私有變量

    這種方法的缺點是會為每一個實例創建一組新的方法,不能實現共享。

 

三、代碼

  1 <!DOCTYPE html>
  2 <html lang="zh-cn">
  3 <head>
  4   <meta charset="utf-8">
  5   <title>課堂演示</title>
  6 </head>
  7 <body>
  8   <script>
  9   /*
 10   function sum(){
 11     var m=100;
 12   }
 13   alert(m) // 會報錯,私有變量(局部變量),外部無法訪問;  14 
 15   function People(){
 16  this.name='張三';//外部可以訪問,因為是屬性,this定義的就是屬性  17       this.age='30';
 18       this.say=function (){
 19         return '我是'+this.name+'......';
 20       }
 21   }
 22 */
 23 
 24   function People(){
 25       var name='張三'; // 私有變量; 外部無法訪問
 26       var age='30';  27       function say(){  // 私有函數;
 28         return '我是......';
 29       }
 30 
 31       this.getname=function(){ // 對外公共的特權方法; 外部可以訪問
 32         return name;  33  }  34 
 35       this.getsay=function(){
 36         return say()
 37       }
 38   }
 39   var p=new People()
 40   alert(p.getname())
 41   alert(p.getsay())
 42   // alert(age)
 43   // alert(say())
 44   </script>
 45 </body>
 46 </html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM