美文网首页Web
JS中的闭包和惰性函数

JS中的闭包和惰性函数

作者: 追逐_chase | 来源:发表于2019-08-20 14:16 被阅读6次
web.jpeg

闭包

  • 一个函数A访问另外一个函数B的数据
闭包的作用
  • 可以间接访问封闭空间私有数据
  • 获取数据只能通过指定的接口
  • 在设置数据的时候可以进行校验处理
  • 延长变量的生命周期
function fn(){
    var a =10;
    return function(){
        a++; 
        return  console.log(a);
        
    };
}

//访问 局部变量 
var f = fn();
f();
f();
// 如果 return a ; 就是延长局部变量的声明周期
  • 通过指定的方法获取数据 和 对数据的处理
    • getName获取数据
    • setName设置处理数据
function demo (){
        var name = "cc";
        var age = 18;

        return function(){

            return {
                getName:function(){

                    return name;
                },
                setName:function(newName){
                    if(newName){
                        name = newName;
                    }

                    return name;
                },
                getAge:function(){
                    return age;
                },
                setAge:function(newAge){
                    if(newAge < 0){
                        newAge = 0;
                    }
                    
                    return (age = newAge);
                }
            }
        }
    }

惰性函数
 //惰性函数: 做一次性初始化的操作
    function foo(){
        //初始化操作
        console.log("foo");
        //更新函数的执行内容,更新函数体
        foo = function(){
            console.log("oo-foo");
            
        }
        
    }

    foo();
    foo();

立即执行函数

  • 通用格式:()();
  • 作用:将局部变量转化为全局变量
 (function(window){
        var name_cc = "测试";

        window.name_cc = name_cc;
        console.log(window);
        
    })(window);
    
    console.log(name_cc);
不同形式的立即执行函数
   //匿名函数
    +function(){
        console.log("1");
        
    }();

//匿名函数
    -function(){
        console.log("2");
    }();


 //匿名函数
    !function(){
        console.log("3");
    }();



相关文章

  • JS中的闭包和惰性函数

    闭包 一个函数A访问另外一个函数B的数据 闭包的作用 可以间接访问封闭空间私有数据 获取数据只能通过指定的接口 在...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • js循环引用引起的内存泄漏示例

    Js中存在和OC同等意义的闭包(block& closure)闭包可看作匿名函数,例如: 函数中 给element...

  • 前端面试题(持续补充)

    js,node.js基础: 闭包 闭包是能够读取其他函数内部变量的函数。在js中,只有函数内部的子函数可以访问内部...

  • 闭包

    关键词:闭包(closure) 概念:闭包就是能够读取其他函数内部变量的函数,对于js,闭包就是将函数内部和函数外...

  • 2018-01-10

    js中的闭包 一.什么是闭包 闭包官方的解释是:闭包就是能够读取其他函数内部变量的函数。由于在javascr...

  • js面试题

    JS中闭包的特性及其优缺点 闭包有三个特性: 函数嵌套函数。 函数内部可以引用外部的参数和变量。 参数和变量不会被...

  • 闭包小记

    什么是闭包? 闭包就是能够读取其他函数内部变量的函数。在js中,只有函数内部的函数才能读取局部变量,所以闭包就是“...

  • js 闭包 字符串 定时器

    js闭包 闭包的三大特点为: 1、函数嵌套函数2、内部函数可以访问外部函数的变量3、参数和变量不会被回收。闭包的作...

  • js 闭包 字符串 定时器

    js闭包 闭包的三大特点为: 1、函数嵌套函数2、内部函数可以访问外部函数的变量3、参数和变量不会被回收。闭包的作...

网友评论

    本文标题:JS中的闭包和惰性函数

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