javascript私有变量

什么是私有变量?

  • 在javascript中没有公有成员的概念,所有的属性都是公有的。但是,在函数中定义的变量都可以认为是私有变量,因为不能再函数的外部访问这些变量。

  • 私有变量包括函数的参数,局部变量和在函数内部定义的其他函数。

function add(num1,num2){
  var sum = num1 + num2;
  return sum;
}

在函数内部可以访问这几个参数、变量,在函数外面访问不了!

如果在这个函数内部创建一个闭包,那么闭包通过自己的作用域链就可以访问这些变量。

  • 利用这一点就可以创建用于访问私有变量的公有方法了

我们把有权访问私有变量和私有函数的公有方法称为特权方法

方法一:在构造函数中创建特权方法

function myObject(){
    // 私有变量
    var privateVariable = 10;
    // 私有函数
    function privateFunction() {
        return false;
    }
    // 特权方法
    this.publicMethod = function(){
      privateVariable++;
      return privateFunction();
    }
}

这个模式是在构造函数内部定义了私有变量和函数,又创建了能够访问这些私有变量和函数的特权方法。
能够在构造函数内部定义特权方法,是因为特权方法作为闭包有权访问在构造函数内定义的私有变量和私有函数。

命名约定

创建私有变量的方式?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 严格来讲,JavaScript 中没有私有成员的概念;所有对象属性都是公有的。 有一个私有变量的概念。任何在函数中...
    shanruopeng阅读 4,938评论 0 1
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,632评论 0 21
  •   函数表达式是 JavaScript 中的一个既强大有容易令人困惑的特性。定义函数的的方式有两种: 函数声明; ...
    霜天晓阅读 4,212评论 0 1
  • 这两天我在练习着接纳“我允许这世间可能出现的一切在自己身上发生”。 我被拒绝了,为什么不可以呢?成千上万的销售报价...
    心玩家正信阅读 2,490评论 0 0
  • 1、内部审计活动的宗旨、权力和职责 一切确认服务和咨询服务都需要在内部审计章程中确定。 (1)宗旨:内部审计为谁服...
    imonkeyking阅读 5,664评论 0 1