zoukankan      html  css  js  c++  java
  • 闭包实现封装,属性私有化

    <script>
    
        function Deng(name, wife){
          var prepareWife = "xiaozhang";
          this.name = name;
          this.wife = wife;
    
          this.divorce = function(){
            this.wife = prepareWife;
          }
    
          this.changePrepareWife = function(target){
            prepareWife = target;
          }
    
          this.sayPrepareWife = function(){
            console.log(prepareWife);
          }
        }
    
        var deng = new Deng('deng', 'xiaoliu')
    
      </script>
    闭包私有属性

      

      外部执行的divorce可以用内部变量,因为this.divorce在对象上,由于对象返回了,这个方法也被返回了,因为闭包,这个函数被存储到了外部,所以储存了这个函数的执行期上下文,var prepareWife被三个函数公用,这三个函数共同用Deng的AO,所以可以在外部随意存取。

      deng.prepareWife是undefined,表面上看起来不是自己的,但是实际上只有对象自己通过对象自己设置的方法可以去操作他。外部用户通过对象.prepareWife是看不到的,只有自己能看到,这就是闭包的私有化运用。

  • 相关阅读:
    PS图层中如何快速找到想要的图层
    知识点手记二
    IE6兼容
    Hack、自适应、针对浏览器写样式随手笔记
    汇编语言实验三
    汇编语言实验二
    汇编语言实验一
    寄存器与代码段
    java.nio.Buffer源码阅读
    汇编语言初探
  • 原文地址:https://www.cnblogs.com/Rooney10/p/13022888.html
Copyright © 2011-2022 走看看