js惰性函数

简介: js惰性函数

js中我们可以使用惰性函数,用于重新定义函数自身的行为

例如:

function addEvent(type, el, fn) {
  if (window.addEventListener) {
    addEvent = function(type, el, fn) {
      el.addEventListener(type, fn, false);
    }
  } else if (window.attachEvent) {
    addEvent = function(type, el, fn) {
      el.attachEvent('on' + type, fn);
    }
  } else {
    addEvent = function(type, el, fn) {
      el['on' + type] = fn;
    }
  }

  addEvent(type, el, fn);
}

// 第一次调用会进行环境判断,之后的调用就会直接使用适合当前环境的函数实现
addEvent('click', document.getElementById('myElement'), function() {
  console.log('Element clicked');
});

这样做的好处是避免了每次都重复判断当前环境,例如浏览器厂商类型、内核版本等

相关文章
|
30天前
|
JavaScript 前端开发
JavaScript 闭包:让你更深入了解函数和作用域
JavaScript 闭包:让你更深入了解函数和作用域
|
1天前
|
自然语言处理 JavaScript 前端开发
在JavaScript中,this关键字的行为可能会因函数的调用方式而异
【6月更文挑战第15天】JavaScript的`this`根据调用方式变化:非严格模式下直接调用时指向全局对象(浏览器为window),严格模式下为undefined。作为对象方法时,`this`指对象本身。用`new`调用构造函数时,`this`指新实例。`call`,`apply`,`bind`可显式设定`this`值。箭头函数和绑定方法有助于管理复杂场景中的`this`行为。
9 3
|
1天前
|
前端开发 JavaScript 数据处理
在JavaScript中,异步函数是指那些不会立即执行完毕,而是会在未来的某个时间点(比如某个操作完成后,或者某个事件触发后)才完成其执行的函数
【6月更文挑战第15天】JavaScript中的异步函数用于处理非同步任务,如网络请求或定时操作。它们使用回调、Promise或async/await。
13 7
|
1天前
JS-函数封装数组求和案例
JS-函数封装数组求和案例
|
1天前
|
JavaScript 前端开发 容器
JavaScript 函数
JavaScript 函数
|
3天前
|
JavaScript 前端开发
Node.js 函数
Node.js 函数
11 4
|
16天前
|
JavaScript 前端开发
js中改变this指向、动态指定函数 this 值的方法
js中改变this指向、动态指定函数 this 值的方法
|
22天前
|
JavaScript 前端开发 Java
javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数
javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数
24 0
|
26天前
|
前端开发 JavaScript
前端 JS 经典:函数管道
前端 JS 经典:函数管道
6 0
|
30天前
|
JavaScript 前端开发 网络架构
函数柯里化:JavaScript中的高级技巧
函数柯里化:JavaScript中的高级技巧