高阶编程技巧
JavaScript的几座大山之一
深海有鱼呀
永远年轻,永远热泪盈眶
展开
-
compose函数实现函数调用扁平化
let fn1 = function (x) { return x + 10; }; let fn2 = function (x) { return x * 10; }; let fn3 = function (x) { return x / 10; }; console.log(fn3(fn1(fn2(fn1(5))))); //=> ((5+10)*10+10)/10 => 16 编写compose函数实现调用扁平化 funct..原创 2021-01-06 10:25:35 · 141 阅读 · 0 评论 -
柯里化函数思想
柯里化这个词一看就感觉高大上,实际当你了解后才发现其实就是高阶函数的一个特殊用法 柯里化是什么? 柯里化 Currying ,就是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 做个简单示例: // 普通的add函数 function add(x, y) { return x + y } // Currying后 function curryingAdd(x) { return function (y) {.原创 2021-01-04 15:18:34 · 168 阅读 · 0 评论 -
单例设计模式
单例模式:创建一个命名空间(模块名)接收返回的相关信息,实现把信息(方法…)暴露给别的模块使用 let module = (function(){ let name = '哈哈' function query(){ console.log('这是一个方法') } funciton fn(){ console.log('fn') } window.query=query // 挂载在window对象上,给别的模块使用,但是挂载的比较多后也可能出现问题 // 优化原创 2021-01-04 14:48:52 · 75 阅读 · 0 评论 -
惰性函数
JS惰性函数,是针对优化频繁使用的函数。常用于函数库的编写、单例模式之中。 应用: 添加绑定事件(原版) function addEvent(dom, type, handle){ if(dom.addEventListener){ dom.addEventListener(type, handler, false); }else{ dom.attachEvent('on' + type, handler); } } 但是每一次都要对浏览器的判断,可原创 2021-01-04 14:46:36 · 647 阅读 · 0 评论 -
前端模块化详解
先解释一下模块化概念 <link rel="stylesheet" href="css/base.css"> <script src="js/swiper.min.js"></script> 模块化:js天生不支持模块化,简单来说就是不能在一个js文件中引入另一个js文件。但由于js文件越来越来越大,很不方便,一些大神自己编写js底层文件让其...原创 2020-06-19 16:18:00 · 282 阅读 · 0 评论