zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9030845.html
Copyright © 2011-2022 走看看