美文网首页
第十九章 公私有变量及特权方法

第十九章 公私有变量及特权方法

作者: 扶光_ | 来源:发表于2021-05-31 15:23 被阅读0次

一,函数回调

  • 回调函数 (优化性能 ) callback is function
    什么时候去使用回调函数呢? DOM事件 定时器异步回调

1.setTimeout 延时器

延时器就是过了几秒之后执行里面的代码 跟定时器的格式是一样的,都是毫秒值

 setTimeout(function(){ 
            alert("aaa")
        },2000)

2.回调函数

 function fn(index){
            alert(index)
        }
        fn("一giao我里giaogiao")
        //将fn函数当做参数传入进去
        function fncallback(functionName,i){
            functionName(i);
        }
        fncallback(fn,"干")

定时器就是一个回调函数。

二,私有内部函数


        //私有 内部函数 
        var person = function(){
            function pen(){
                console.log("铅笔");
            }
            return pen;
        }
        // console.log(person()());   undefined  铅笔
        person()()    
铅笔

2.私有变量和公有变量

私有变量 外部无法访问
公有变量 外部可以访问
如下面的例子

 function Person(){
                var a = "羊羊"//私有变量     
                this.age = 11//公有变量
        }
        var person = new Person()
        console.log(person.age);
        console.log(person.a);
结果

同样公私有函数也是一样的


        function Person(){
            var a = function(){
                console.log("aaaaaa");
            }

            this.b = function(){
                console.log("bbbbbb");
            }
        }
        var person = new Person();
        person.a();
        person.b();
结果

外部访问不到函数里面a这个私有函数所以会出现报错。
那么问题来了,在一些情况下,如果我们想在函数外部访问私有变量或私有方法那么该如何去访问呢?下面就用特权方法来实现

三,特权方法

什么是特权方法呢?
简单来说:就是通过公有函数方法找到私有变量或私有函数

  function Fn(){
            var a = 999;
            var fn1 = function() {
                return "giao"
            }
           
        } 
        var fn = new Fn();
       
        console.log(a);
结果

如上面我们直接访问内部的私有变量是访问不到的 应该是下面的代码这样

function Fn(){
            var a = 999;
            var fn1 = function() {
                return "giao"
            }
            //创建的一个公有函数 来返回a的值
            this.find = function(){
                return a;
            }
        } 
        var fn = new Fn();
        // //可以通过公有函数找到私有变量
        console.log(fn.find());

成功访问到了!


image.png
  • 访问私有函数也是一样 如我们要访问上面的私有函数fn1
 function Fn(){
            var a = 999;
            var fn1 = function() {
                return "giao"
            }
            //创建的一个公有函数 来返回a的值
            this.find = function(){
                return fn1();
            }
        } 
        var fn = new Fn();
        // //可以通过公有函数找到私有函数fn1
        console.log(fn.find());
访问私有函数

相关文章

  • 第十九章 公私有变量及特权方法

    一,函数回调 回调函数 (优化性能 ) callback is function什么时候去使用回调函数呢? DO...

  • 2018-12-06

    7.4.1 静态私有变量 通过在私有作用域中定义私有变量或函数,同样也可以创建特权方法,其基本模式如下: 这个模式...

  • JavaScript 构造函数私有、公有、静态、特权方法

    3. 构造函数的私有、公有、静态、特权方法 私有属性和方法创建:在构造函数内部创建的变量是私有属性,创建的函数是私...

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

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

  • 模块模式

    模块模式 模块 模式实在单例对象上加上扩展,通过作用域链来关联私有变量和特权方法对象字面量封装模块,闭包实现私有和...

  • JacaScript 私有变量(二)静态私有变量

    通过在私有作用域中定义私有变量或函数,同样也可以创建特权方法: 这个模式创建了一个私有作用域,并在其中封装了一个构...

  • 闭包作用

    闭包的作用:模仿块作用域、保存变量、封装私有变量(1)模仿块作用域:通过构建立即执行函数 通过特权方法来访问(静态...

  • 【JS第33期】设计模式-模块模式

    模块模式通过为单例添加私有变量和特权方法能够使其得到增强,语法如下: 增强模块模式 增强模块模式,即在返回对象之前...

  • JacaScript 私有变量(三)模块模式

    模块模式是为单例创建私有变量和特权方法。所谓单例,指的就是只有一个实例对象。按照惯例, JavaScript 是以...

  • 2018-06-28 python 类的私有变量和私有方法

    转发python 类的私有变量和私有方法 类的私有变量和私有方法在Python中可以通过在属性变量名前加上双下划线...

网友评论

      本文标题:第十九章 公私有变量及特权方法

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