JS 原生闭包模块化开发总结

时间: 2019-11-27阅读: 396标签: 闭包

一、闭包模块的第一种写法:

// HH: 闭包类的第一种写法
var PeopleClass = function () {
    var age = 18
    var name = 'HAVENT'

    // 闭包返回公开对象
    return {
        getAge: function () {
            return age
        },
        getName: function () {
            return name
        }

    }
}

// HH: 闭包类的第一种写法的调用
var people = new PeopleClass()
console.log(people.getAge())
console.log(people.getName())

 

二、闭包模式的第二种写法

// HH: 闭包类的第二种写法
var PeopleClass = function () {
    var main = {}
    var age = 18
    var name = 'HAVENT'
    
    main.getAge = function () {
        return age
    }
    
    main.getName = function () {
        return name
    }

    // 闭包返回公开对象
    return main
}

// HH: 闭包类的第二种写法的调用
var people = new PeopleClass()
console.log(people.getAge())
console.log(people.getName())

 

三、闭包模式的自动实例化对象的写法

// HH: 闭包类的自动实例化对象的写法
var we = we || {}
we.people = (function () {
    var age = 18
    var name = 'HAVENT'

    function getPeopleAge () {
        return age
    }

    function getPeopleName() {
        return name
    }

    // 闭包返回公开对象
    return {
        getAge: function () {
            return getPeopleAge()
        },
        getName: function () {
            return getPeopleName()
        }
    }
})()

// HH: 闭包类的自动实例化对象的写法的调用
console.log(we.people.getAge())
console.log(we.people.getName())

 

四、闭包类的方法注入模式写法

// HH: 闭包类的方法注入模式写法
var we = we || {}
we.people = function () {
    this.age = 18
    this.name = 'HAVENT'
}

we.people.prototype.getAge = function () {
    return this.age
}

we.people.prototype.getName = function () {
    return this.name
}

// HH: 闭包类的方法注入模式写法的调用
var people = new we.people()
console.log(people.getAge())
console.log(people.getName())

 

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/7880

关闭

JavaScript闭包应用介绍

闭包是JS中的强大特性之一,然而至于闭包怎么使用,我觉得不算是一个问题,甚至我们完全没必要研究闭包怎么使用。我的观点是,闭包应该是自然而言地出现在你的代码里,因为它是解决当前问题最直截了当的办法

使用 JS 及 React Hook 时需要注意过时闭包的坑

闭包是一个函数,它从定义变量的地方(或其词法范围)捕获变量。闭包是每个 JS 开发人员都应该知道的一个重要概念。当闭包捕获过时的变量时,就会出现过时闭包的问题

js闭包问题

使用闭包能够让局部变量模拟全局变量一样,但是它只能被特定函数使用。我们都知道:1.全局变量可能会造成命名冲突,使用闭包不用担心这个问题,因为它是私有化,加强了封装性,这样保护变量的安全

JavaScript必须掌握的基础 --- 闭包

闭包是一个让初级JavaScript使用者既熟悉又陌生的一个概念。因为闭包在我们书写JavaScript代码时,随处可见,但是我们又不知道哪里用了闭包。

Js中的闭包与高级函数

在JavaScript中,函数是一等公民。JavaScript是一门面向对象的编程语言,但是同时也有很多函数式编程的特性,如Lambda表达式,闭包,高阶函数等,函数式编程时一种编程范式。

闭包实现:异步变同步

在不使用ES6的前提下如何将一个多个异步请求按顺序执行呢?要求使用JavaScript代码按顺序依次请求这5张图片,一次只能请求一张,可以结合 闭包+回调+递归 组合来解决

带你一分钟理解 JavaScript 闭包

闭包就是一个函数引用另外一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。这是优点也是缺点,不必要的闭包只会徒增内存消耗!另外使用闭包也要注意变量的值是否符合你的要求

使用闭包的方式实现一个累加函数 addNum

使用闭包的方式实现一个累加函数 addNum,参数为 number 类型,每次返回的结果 = 上一次计算的值 + 传入的值

js循环中的异步&&循环中的闭包

for循环中let 和var的区别,setTimeout(func,time)函数运行机制,一个需求,一个数组array[1,2,3,4,5],循环打印,间隔1秒

Js闭包的实现原理和作用

闭包的概念:指有权访问另一个函数作用域中的变量的函数,一般情况就是在一个函数中包含另一个函数。闭包的作用:访问函数内部变量、保持函数在环境中一直存在,不会被垃圾回收机制处理

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!