Javascript类的写法

Javascript中function即为类,在function内部用this设置类的public成员变量与方法,例如:

 [javascript] view plaincopy

  1. function myclass(name){  
  2.     var str = "private string";    //private field  
  3.   
  4.     function privatefn(){      //private method         alert(str);  
  5.     };  
  6.   
  7.     this.name = name;  
  8.   
  9.     this.pubfn = function(){  
  10.         privatefn();      //call private method  
  11.         alert("myclass.pubfn");  
  12.     }  
  13. }  

 

使用时用new创建对象:

 

[javascript] view plaincopy
  1. var obj = new myclass("123");  
  2. var name = obj.name;    //access public field  
  3. obj.pubfn();        //call public method  

上述是Javascript类最普通的写法,实际应用得较少,用得最多的是写成静态类的形式,Javascript的静态类有两种写法:

1. 类似Json对象的写法

[javascript] view plaincopy
 
  1. var myclass = {  
  2.     name : "123",  
  3.   
  4.     pubfn : function(){  
  5.         alert("pubfn1 is called");  
  6.     }  
  7. };  

 

调用形式:myclass.name, myclass.pubfn()

这种写法使类的成员的访问权限均为public。

2. 匿名函数的写法

[javascript] view plaincopy
  1. var myclass = function(){  
  2.     var name = "123";        //private field  
  3.   
  4.     var privatefn = function(){        //private method  
  5.         alert(name);  
  6.     }  
  7.   
  8.     return{                 //return public field and method  
  9.         Name: "hello " + name,    //public field  
  10.   
  11.         pubfn : function(){  
  12.             privatefn();                //call private method  
  13.             alert("this is a returned function"); //public method  
  14.         }  
  15.     }  
  16. }();  

这种写法的好处是可以将私有和共有的成员方法和变量分开,实际应用中可将复杂的逻辑写的私有方法中,而return一个公用的接口调用私有方法。

调用形式:myclass.Name, myclass.pubfn()

注意类结尾处的小括号,它的作用是创建对象,去除小括号的话,则调用形式为:myclass().Name, myclass().pubfn()。

posted on 2015-05-29 14:59  神奇的旋风  阅读(182)  评论(0编辑  收藏  举报

导航