摘要: 一. new是干嘛的? new操作符用来生成一个新的对象, 它后面必须跟上一个函数(否则, 会抛出TypeError异常), 这个函数就是我们常说的构造函数. 二. new操作构造函数生成实例的过程 (1) 首先, 当我们使用new操作符时, js会先创建一个空的对象; (2) 然后, 构造函数中的 阅读全文
posted @ 2017-07-10 16:44 gq_orange 阅读(961) 评论(0) 推荐(0) 编辑
摘要: 1.闭包(Closure) 闭包的概念 可以保留局部变量不被释放的代码块,被称为一个闭包。 闭包的特点:函数嵌套函数、内部函数可以引用外部函数的参数和变量、参数和变量不会被垃圾回收机制收回 makeCounter 这个函数的代码块,在返回的函数中,对局部变量 k ,进行了引用,导致局部变量无法在函数 阅读全文
posted @ 2017-07-10 16:20 gq_orange 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 1、函数式编程理解 函数式编程可以理解为,以函数作为主要载体的编程方式,用函数去拆解、抽象一般的表达式 与命令式相比,这样做的好处在哪?主要有以下几点: (1)语义更加清晰 (2)可复用性更高 (3)可维护性更好 (4)作用域局限,副作用少 当情况变得更加复杂时,表达式的写法会遇到几个问题: (1) 阅读全文
posted @ 2017-07-10 16:02 gq_orange 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 尾调用 尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。 尾调用优化 尾调用之所以与其他调用不同,就在于它的特殊的调用位置。 我们知道,函数调用会在内存形成一个“调用记录”,又称“调用帧”(call frame),保存 阅读全文
posted @ 2017-07-10 15:40 gq_orange 阅读(403) 评论(0) 推荐(0) 编辑
摘要: ES6允许使用“箭头”(=>)定义函数。 基本语法: 函数名 = 参数 => 代码块 如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。 箭头函数的一个用处是简化回调函数。 箭头函数有几个使用注意点: (1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。 ( 阅读全文
posted @ 2017-07-10 15:03 gq_orange 阅读(193) 评论(0) 推荐(0) 编辑