美文网首页
js--实现私有变量

js--实现私有变量

作者: 栗子酥小小 | 来源:发表于2017-03-22 00:32 被阅读0次
  • 严格来讲,js中所有对象属性都是共有的,但由于js的函数作用域特性,其实可以认为,任何在函数中定义的变量,都可以认为是私有变量,因为在函数外部不能访问到这些变量,只有在函数本身内部,或者内部闭包函数里才能访问这些变量。

  • 此时便可以将私有变量放在一个函数里,然后以闭包的形式,在该函数里创建特权函数来访问和操纵这些变量。

  • 例如:

  •   function Person(name){
          
              this.getName = function(){
                  return name;
              };
          
              this.setName = function (value) {
                  name = value;
              };
          }
          
          var person = new Person("Nicholas");
          alert(person.getName());   //"Nicholas"
          person.setName("Greg");
          alert(person.getName());   //"Greg"
    
  • 解析:这里运用的是创建对象中的构造函数模式,有个缺点是每生成一个实例,就会创建同样一组新方法,占用大量内存。

  • 解决的办法是使用静态私有变量来实现特权方法。

相关文章

  • js--实现私有变量

    严格来讲,js中所有对象属性都是共有的,但由于js的函数作用域特性,其实可以认为,任何在函数中定义的变量,都可以认...

  • JS 闭包(Closure)

    JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。 简单点说闭包就是JS中用来实现私有变量...

  • OC中如何实现私有成员变量

    OC中如何实现私有成员变量 @property生成的成员变量即为私有成员变量@property生成的是: 带下划线...

  • Objective-C Runtime API的应用

    查看私有成员变量 获取到成员变量的名称,就能通过KVC为私有成员变量设置值,比如 替换方法实现,交换方法 clas...

  • 源码 InheritableThreadLocal(作用域扩散)

    继上篇文章《源码 ThreadLocal (线程私有变量)》后,我们明白了ThreadLocal是如何实现线程私有...

  • 1.1 OC中的私有方法

    本小节知识点: 【掌握】OC中的私有变量 【掌握】OC中的私有方法 1.OC中的私有变量 在类的实现即.m文件中也...

  • 作用域链

    查找私有变量 JS中的私有变量有且只有两种在私有作用域变量提升阶段,声明过的变量(或者函数)形参也是私有变量 [图...

  • 2018-05-09作用域

    1.函数的属性 [[scope]] 2.闭包的作用闭包能够使用公有变量 可以做缓存 实现私有变量 实现模块化开发,...

  • JavaScript函数_07 私有变量 + 私有函数 + 特权

    私有变量 使用 var 关键字声明在函数内部的变量称为私有变量 私有函数 在函数内部声明的函数称为私有函数 特权方...

  • JavaScript函数表达式——私有变量

    私有变量 任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量,私有变量包括函数的参数,...

网友评论

      本文标题:js--实现私有变量

      本文链接:https://www.haomeiwen.com/subject/pjunnttx.html