美文网首页
JavaScript惰性函数

JavaScript惰性函数

作者: Binaryify | 来源:发表于2016-03-26 23:58 被阅读502次

背景

在开发过程中,有时候需要对浏览器环境进行检测,比如封装一个AJAX函数的时候需要写一个函数进行检测,但是常规的写法有点累赘了,会检测很多遍,但是浏览器环境是固定不变的,检测只需要检测一遍.这样就会造成每次调用这个函数的时候浏览器都会浪费太多时间去再检测一次.这时候就应该用到惰性函数来解决这个问题

惰性函数

惰性载入表示函数执行的分支只会在函数第一次掉用的时候执行,在第一次调用过程中,该函数会被覆盖为另一个按照合适方式执行的函数,这样任何对原函数的调用就不用再经过执行的分支了。
下面看一段JS代码:

function createXHR() {
    var xhr;
    if (typeof XMLHttpRequest != 'undefined') {
        xhr = new XMLHttpRequest();
        createXHR = function() {
            return new XMLHttpRequest();
        }
    } else {
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
            createXHR = function() {
                return new ActiveXObject("Msxml2.XMLHTTP");
            }
        } catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
                createXHR = function() {
                    return new ActiveXObject("Microsoft.XMLHTTP");
                }
            } catch (e) {
                createXHR = function() {
                    return null;
                }
            }
        }
    }
    return xhr
}

什么意思呢?就是说这个函数在执行第一次的时候正常判断,只是条件成立的时候会重新改写这个函数,并返回相应的结果,这样下次调用的时候就不会浪费时间再去判断相关环境了

相关文章

  • 前端_JavaScript

    JavaScript 专题之惰性函数 JavaScript 专题系列第十五篇,讲解惰性函数 需求 我们现在需要写一...

  • JavaScript惰性函数

    惰性函数 定义: 惰性函数,函数内部有许多判断来来检测函数,这样多次调用会浪费时间和浏览器资源,所有当第一次判断完...

  • JavaScript惰性函数

    背景 在开发过程中,有时候需要对浏览器环境进行检测,比如封装一个AJAX函数的时候需要写一个函数进行检测,但是常规...

  • JavaScript:惰性函数

    前言 什么是惰性函数?惰性函数表示函数执行的分支只会在函数第一次调用的时候执行,在第一次调用过程中,该函数会被覆盖...

  • JavaScript

    JavaScript高级函数 惰性函数 函数柯里化 级联函数(链式函数) 设计模式 单例模式 构造函数模式 工厂模...

  • JS高级函数

    高级函数 在 JavaScript 中使用函数的高级方法。 数据类型的安全检测 构造函数的安全作用域 惰性载入函数...

  • javaScript性能优化之代码优化

    利用函数的惰性载入提高 javaScript 代码性能 在 javaScript 代码中,因为各浏览器之间的行为的...

  • 解析JavaScript惰性载入函数

    惰性载入函数表示函数执行的分支仅会发生一次,有两种实现惰性载入函数的方式,第一种是在函数被调用时再处理,在第一次调...

  • 解析JavaScript惰性载入函数

    惰性载入函数表示函数执行的分支仅会发生一次,有两种实现惰性载入函数的方式,第一种是在函数被调用时再处理,在第一次调...

  • 『JavaScript专题』之惰性函数

    需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次。 解决一:普通方法 ...

网友评论

      本文标题:JavaScript惰性函数

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