js-JavaScript高级程序设计学习笔记5
2016-11-28 16:37
459 查看
第七章 函数表达式
1、函数声明的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明,因此可以把函数声明放在调用它的语句后面。
2、使用函数表达式创建的函数叫做匿名函数(拉姆达函数),因为function关键字后面没有标识符,匿名函数的name属性是空字符串。在调用前必须先赋值。
3、arguments.callee是一个指向正在执行的函数的指针,因此可以用它来实现对函数的递归调用,用它代替函数名,无论怎么调用函数都不会出问题。在严格模式下,不能通过脚本访问arguments.callee,可以使用命名函数表达式达到相同的结果。P178.
4、闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。
5、闭包会携带包含它的函数的作用域,因此会比其他函数占用更多的内存,过度使用闭包可能会导致内存占用过多。
6、闭包只能取得包含函数中任何变量的最后一个值,所以在循环中使用闭包要注意。
7、匿名函数的执行环境具有全局性,因此其this对象通常指向window。
8、块级作用域(私有作用域)的匿名函数语法:
9、私有作用域经常用在全局作用域中,限制向全局作用域添加过多的变量和函数。一般来说,尽量少向全局作用域中添加变量和函数。
10、任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。私有变量包括函数的参数、局部变量和函数内部定义的其他函数。
11、有权访问私有变量和私有函数的公有方法称为特权方法。有两种在对象上创建特权方法的方式,一是在构造函数中定义特权方法,二是使用静态私有变量实现特权方法。
12、模块模式是为单例创建私有变量和特权方法。单例指的是只有一个实例的对象。如果必须创建一个对象并以某些数据对其进行初始化,同时还要公开一些能够访问这些私有数据的方法,那么就可以使用模块模式。
1、函数声明的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明,因此可以把函数声明放在调用它的语句后面。
2、使用函数表达式创建的函数叫做匿名函数(拉姆达函数),因为function关键字后面没有标识符,匿名函数的name属性是空字符串。在调用前必须先赋值。
3、arguments.callee是一个指向正在执行的函数的指针,因此可以用它来实现对函数的递归调用,用它代替函数名,无论怎么调用函数都不会出问题。在严格模式下,不能通过脚本访问arguments.callee,可以使用命名函数表达式达到相同的结果。P178.
4、闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。
5、闭包会携带包含它的函数的作用域,因此会比其他函数占用更多的内存,过度使用闭包可能会导致内存占用过多。
6、闭包只能取得包含函数中任何变量的最后一个值,所以在循环中使用闭包要注意。
7、匿名函数的执行环境具有全局性,因此其this对象通常指向window。
8、块级作用域(私有作用域)的匿名函数语法:
(function(){ //块级作用域 })();
9、私有作用域经常用在全局作用域中,限制向全局作用域添加过多的变量和函数。一般来说,尽量少向全局作用域中添加变量和函数。
10、任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。私有变量包括函数的参数、局部变量和函数内部定义的其他函数。
11、有权访问私有变量和私有函数的公有方法称为特权方法。有两种在对象上创建特权方法的方式,一是在构造函数中定义特权方法,二是使用静态私有变量实现特权方法。
12、模块模式是为单例创建私有变量和特权方法。单例指的是只有一个实例的对象。如果必须创建一个对象并以某些数据对其进行初始化,同时还要公开一些能够访问这些私有数据的方法,那么就可以使用模块模式。
相关文章推荐
- js-JavaScript高级程序设计学习笔记18
- JavaScript高级程序设计 学习笔记 js高级技巧
- js-JavaScript高级程序设计学习笔记16
- JavaScript高级程序设计(第3版)学习笔记6 初识js对象
- JavaScript高级程序设计(第2版) 学习笔记:(一)js函数依赖性
- js-JavaScript高级程序设计学习笔记10
- js-JavaScript高级程序设计学习笔记6
- js-JavaScript高级程序设计学习笔记2
- js-JavaScript高级程序设计学习笔记8
- js-JavaScript高级程序设计学习笔记11
- js-JavaScript高级程序设计学习笔记21 改善JavaScript性能的方法
- JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
- js-JavaScript高级程序设计学习笔记20
- JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
- JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
- JavaScript高级程序设计(第3版)学习笔记11 内建js对象
- js-JavaScript高级程序设计学习笔记13
- JavaScript高级程序设计学习笔记一在HTML中使用JS
- JavaScript高级程序设计 学习笔记 js高级技巧
- JavaScript高级程序设计(第3版)学习笔记10 再访js对象