js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态)

js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态)

一、总结

1、js函数中的private和publicjs函数中的私有变量 var 变量名,公有变量 this.变量名

2、js静态私有变量将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态

3、js静态私有变量的作用js中的static:解决变量静态的问题,就是java中static的作用

4、js中的get和set方法:也就是js中一般对象的定义方法

 1     function People(_name){
 2       var name=_name; //私有,外部无法访问
 3       this.getName=function(){ //公有,外部可以访问
 4         return name
 5       }
 6 
 7       this.setName=function(value){ //set函数
 8         name=value
 9       }
10 
11     }
12 
13     var p1=new People('张三');
14     alert(p1.getName())
15 
16     p1.setName('李四')
17     alert(p1.getName())

二、js静态私有变量

静态私有变量

通过块级作用域(私有作用域)中定义私有变量或函数,创建对外公共的特权方法;

  • 首先创建私有作用域
  • 定义私有变量或函数
  • 定义构造函数和特权方法
  • 这种方式创建的私有变量因为使用原型而实现共享。
  • 同时由于共享,实例也就没有自己的私有变量

三、代码

  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   //通过构造方法传参来访问私有变量
 11     function People(_name){
 12       var name=_name;
 13       this.getName=function(){
 14         return name
 15       }
 16 
 17       this.setName=function(value){
 18         name=value
 19       }
 20 
 21     }
 22 
 23     var p1=new People('张三');
 24     alert(p1.getName())
 25 
 26     p1.setName('李四')
 27     alert(p1.getName())
 28   */
 29 
 30   (function(){
 31     var name='张三';
 32     User=function(){} //构造函数
 33     User.prototype.getName=function(){
 34         return name
 35       }
 36     User.prototype.setName=function(value){
 37         name=value
 38       };
 39   })()
 40 
 41   var VIP1=new User() //因为Uer()是私有函数,所以外部无法访问。
 42   //alert(VIP1.getName())
 43   VIP1.setName('李四')
 44   //alert(VIP1.getName())
 45 
 46   var VIP2=new User()
 47   alert(VIP2.getName()) //结果是李四
 48   </script>
 49 </body>
 50 </html>
原文地址:https://www.cnblogs.com/Renyi-Fan/p/9030845.html