![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS基础
audreylau
这个作者很懒,什么都没留下…
展开
-
高阶函数的应用
高阶函数: 函数参数如果是函数,或者这个函数返回一个新的函数1. 高阶函数与AOPAOP(面相切面编程): 主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来。例如:日志统计,异常处理等。把这些功能抽离出来后,通过"动态植入"的方法,掺入到业务逻辑模块中。这样做的好处是保证业务逻辑模块的纯净和高内聚,其次可以方便的复用日志统计等功能模块1.1 before(前置通知)function ...原创 2019-09-05 10:12:10 · 741 阅读 · 0 评论 -
浅析函数柯里化与反柯里化
浅析函数柯里化与反柯里化1. 柯里化柯里化(Currying),又称部分求值(Partial Evaluation),可以理解为提前接收部分参数,延迟执行,不立即输出结果,而是返回一个接受剩余参数的函数。因为这样的特性,也被称为部分计算函数。柯里化,是一个逐步接收参数的过程。1.1 作用柯里化有3个常见作用:参数复用提前返回延迟计算/运行先看一个简单示例,实现 add(1)...原创 2019-09-16 11:31:45 · 945 阅读 · 0 评论 -
apply、call和 bind 方法详解(含手写)
1. 三者的简单比较先看一个简单地例子:let person = { name: '张三', age: '20', say(arg1, arg2) { console.log(`我叫${this.name},年龄${this.age},喜欢${arg1}、${arg2}`); }}person.say('唱歌', '跳舞');let ad...原创 2019-09-24 13:38:26 · 714 阅读 · 0 评论 -
对象详解(原型链、继承)
对象详解(原型链、继承)ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。” 我们可以把ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数。1. 理解对象1.1 属性类型简而言之,就是描述对象属性的各种特征。属性类型分为两种:数据属性和访问器属性。一个属性只能为数据属性或访问器属性,也就是说如果一个描述符同时重新定义(...原创 2019-10-08 13:44:59 · 356 阅读 · 0 评论