zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    Gym
    HDU
    HDU
    POJ
    洛谷P3690 Link Cut Tree (动态树)
    Gym
    P4294 [WC2008]游览计划 (斯坦纳树)
    洛谷P3264 [JLOI2015]管道连接 (斯坦纳树)
    HDU
    Controller调试接口
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9029399.html
Copyright © 2011-2022 走看看