今天来聊聊JavaScript中的构造函数模式
严格来说JavaScript中没有私有成员这个概念,但是有私有变量个概念,任何在函数中定义的变量都可以看成是私有变量,在函数的外部不能直接访问,这些私有变量包括:函数参数,局部变量,以及函数内部定义的函数
例如:
1 function myFunc(){ 2 //私有变量和私有函数 3 var num=10; 4 function innerFunc(){ 5 return num; 6 } 7 //特权方法 8 this.outerFunc=function(){ 9 num++; 10 return innerFunc(); 11 } 12 } 13 14 var one=new myFunc(); 15 one.outerFunc();//11 16 var two=new myFunc(); 17 two.outerFunc();//11 18 two.outerFunc();//12
里面的特权方法通过闭包可以访问里面的私有变量,将这个特权方法暴露出来,需要通过构造函数的来达到目的,并且每个实例都会创建一组新的方法