摘要: 内容要点: 一.JS类 在JS中,类的所有实例对象都从同一个原型对象上继承属性。因此,原型对象是类的核心。在例6.1 原型中定义了inherit()函数(通过原型继承创建一个新对象),这个函数返回一个新创建的对象,后者继承自某个原型对象。 如果定义一个原型对象,然后通过inherit()函数创建一个 阅读全文
posted @ 2016-09-05 13:55 承载梦想-韩旭明 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 一. 1.第六章详细介绍了JS对象,每个JS对象都是一个属性集合,相互之间没有任何联系。在JS中也可以定义对象的类,让每个对象都共享某些属性,这种"共享"的特性是非常有用的。 2.类的成员或实例都包含一些属性,用以存放或定义它们的状态,其中有些属性定义了它们的行为(通常称为方法)。这些行 阅读全文
posted @ 2016-09-05 11:22 承载梦想-韩旭明 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 可以将上次的计算结果缓存起来。在函数式编程当中,这中缓存技巧叫做 "记忆"。 需要注意的是,记忆只是一种编程技巧,本质上是牺牲算法的空间复杂度以换取更优的时间复杂度,在客户端JS中代码代码执行的时间复杂度往往成为瓶颈,因此在大多数场景下,这种牺牲空间换取时间的做法以提升程序执行效率的做法 阅读全文
posted @ 2016-09-02 14:31 承载梦想-韩旭明 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 本节讨论的是一种函数变换技巧,即把一次完整的函数调用拆成多次函数调用,每次传入的实参都是完整实参的一部分,每个拆分开的函数叫做不完全函数(partial function),每次函数调用叫做不完全调用(partial application),这种函数变换的特点是每次调用都返回一个函数, 阅读全文
posted @ 2016-09-02 10:18 承载梦想-韩旭明 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 所谓高阶函数(higher-order function)就是操作函数的函数,它接收一个或多个函数作为参数,并返回一个新函数。 例1: //这个高阶函数返回一个新的函数,这个新函数将它的实参传入f(),并返回f的返回值的逻辑非 function not(f){ return functi 阅读全文
posted @ 2016-09-01 21:13 承载梦想-韩旭明 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 和Lisp、Haskell不同,JS并非函数式编程语言,但在JS中可以像操控对象一样操控函数, 也就是说可以在JS中应用函数式编程技术。ES5中的数组方法(诸如map()和reduce())就可以非常适用于函数式编程风格。 一.使用函数处理数组 假设有一个数组,数组元素都是数字,我们想要 阅读全文
posted @ 2016-09-01 20:34 承载梦想-韩旭明 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 在JS程序中,函数是值。对函数执行typeof运算会返回字符串 "function",但是函数是JS中特殊的对象。因为函数也是对象,它们也可以拥有属性和方法,就像普通的对象可以拥有属性和方法一样。甚至可以用Function()构造函数来创建新的函数对象。 一.length属性 在函数体内 阅读全文
posted @ 2016-09-01 17:39 承载梦想-韩旭明 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 和其他大多数现代编程一样,JS也采用词法作用域,也就是说,函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的。 为了实现这种词法作用域,JS函数对象的内部状态不仅包含函数的代码逻辑,还必须引用当前的作用域链。 闭包概念:函数对象可以通过作用域链相互关联起来 阅读全文
posted @ 2016-08-31 18:06 承载梦想-韩旭明 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 函数作用域的概念:在函数中声明的变量在整个函数体内都是可见的(包括在嵌套的函数中),在函数的外部是不可见的。不在任何函数内声明的变量是全局变量,在整个JS程序中都是可见的。 在JS中无法声明只在一个代码块内可见的变量的。(在客户端JS中这种说法不完全正确,比如,在有些JS的扩展中就可以使 阅读全文
posted @ 2016-08-30 16:14 承载梦想-韩旭明 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 内容要点: 函数可以定义,也可以调用,这是函数最重要的特性。函数定义和调用是JS的词法特性,对于其他大多数编程语言来说也是如此。然而在JS中,函数不仅仅是一种语法,也是值,也就是说,可以将函数赋值给变量,存储在对象的属性或数组的元素中,作为参数传入另外一个函数等。 一.理解JS中的函数 定义一个函数 阅读全文
posted @ 2016-08-30 12:22 承载梦想-韩旭明 阅读(426) 评论(0) 推荐(0) 编辑