JS编程建议——71:推荐分支函数

简介: 71:推荐分支函数

建议71:推荐分支函数
分支函数解决的一个问题是浏览器之间兼容性的重复判断。解决浏览器之间的兼容性的一般方式是使用if逻辑来进行特性检测或能力检测,根据浏览器不同的实现来实现功能上的兼容,这样做的问题是,每执行一次代码,可能都需要进行一次浏览器兼容性方面的检测,这是没有必要的。能否在代码初始化执行的时候就检测浏览器的兼容性,在之后的代码执行过程中,就无须再进行检测了呢?
答案是:能。分支技术就可以解决这个问题,下面以声明一个XMLHttpRequest实例对象为例进行介绍。
var XHR = function() {

var standard = {
    createXHR : function() {
        return new XMLHttpRequest();
    }
}
var newActionXObject = {
    createXHR : function() {
        return new ActionXObject("Msxml2.XMLHTTP");
    }
}
var oldActionXObject = {
    createXHR : function() {
        return new ActionXObject("Microsoft.XMLHTTP");
    }
}
if(standard.createXHR()) {
    return standard;
} else {
    try {
        newActionXObject.createXHR();
        return newActionXObject;
    } catch(o) {
        oldActionXObject.createXHR();
        return oldActionXObject;
    }
}

}();
从上面的例子可以看出,分支的原理就是:声明几个不同名称的对象,但为这些对象声明一个名称相同的方法(这是关键)。这些不同的对象,却拥有相同的方法,根据不同的浏览器设计各自的实现,接着开始进行一次浏览器检测,并且由浏览器检测的结果来决定返回哪一个对象,这样不论返回的是哪一个对象,最后名称相同的方法都作为对外一致的接口。
这是在JavaScript运行期间进行的动态检测,将检测的结果返回赋值给其他的对象,并且提供相同的接口,这样存储的对象就可以使用名称相同的接口了。其实,惰性载入函数跟分支函数在原理上是非常相近的,只是在代码实现方面有差异。

相关文章
|
2月前
|
存储 JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果+1
JavaScript编程实现tab选项卡切换的效果+1
|
3天前
|
JavaScript 前端开发 Java
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
本文介绍了JavaScript中常用的函数和方法,包括通用函数、Global对象函数以及数组相关函数。详细列出了每个函数的参数、返回值及使用说明,并提供了示例代码。文章强调了函数的学习应结合源码和实践,适合JavaScript初学者和进阶开发者参考。
13 2
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
|
2天前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
8天前
|
自然语言处理 JavaScript 前端开发
JavaScript闭包:解锁编程潜能,释放你的创造力
【10月更文挑战第25天】本文深入探讨了JavaScript中的闭包,包括其基本概念、创建方法和实践应用。闭包允许函数访问其定义时的作用域链,常用于数据封装、函数柯里化和模块化编程。文章还提供了闭包的最佳实践,帮助读者更好地理解和使用这一强大特性。
11 2
|
16天前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
18天前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
27天前
|
JavaScript 前端开发
js教程——函数
js教程——函数
24 4
|
26天前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
15 2
|
29天前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
22 5
|
29天前
|
JavaScript 前端开发
Node.js 函数
10月更文挑战第5天
19 3