JS高级程序设计笔记(六)- 函数
来源:互联网 发布:制作课程表的软件 编辑:程序博客网 时间:2024/06/07 11:06
声明提升
使用function
进行声明的函数具有声明提升的特性,因此可以在进行函数声明之前调用。但是通过var func = function(){}
这样的函数表达式声明的方法,则不可以。调用时会返回undefined
。
闭包
首先来看看当调用一个函数时发生了什么。
当调用一个函数时,会创建一个执行环境和作用域链(作用域链赋值给执行环境内部的[scope]
属性)。之后,this
、arguments
和命名参数会初始化该函数的活动对象。每个执行环境都有一个保存变量的对象称之为变量对象。函数的变量对象又叫活动对象。
例如compare
函数:
当在一个函数中返回一个匿名函数,则该匿名函数的作用域链中包含外部函数的活动对象。因此,在函数外部仍能通过返回的闭包访问到该函数内部声明的变量和方法。除非当闭包被销毁。可以看出闭包会占用比较多的内存,因此要谨慎使用。
闭包有一个作用就是向函数外部提供了访问局部变量的接口。可以防止过多的全局变量和随意更改变量。
私有变量
构建私有变量和方法有以下几种方式:
- 通过构造函数
function Func() { //私有变量和方法 var privateVar = XXX; function privateFunc(){...} ... //特权方法 this.publicMethod = function(){ //闭包 //deal with privateVar&method };}
该方式的缺点是每生成一个实例就要重新创建一遍方法。
0 0
- JS高级程序设计笔记(六)- 函数
- javascript高级程序设计笔记(六)
- JavaScript高级程序设计笔记 BOM (六)
- 《js高级程序设计》--函数
- js 高级程序设计笔记
- JS高级程序设计-笔记
- JavaScript高级程序设计(第2版) 学习笔记:(六)js基于构造函数与原型的继承
- 《JavaScript高级程序设计 第三版》学习笔记 (六) 函数与闭包详解
- 《JavaScript高级程序设计 第三版》学习笔记 (六) 函数与闭包详解
- 《JavaScript高级程序设计 第三版》学习笔记 (六) 函数与闭包详解
- JS高级程序设计笔记(一)-数据类型
- 《JavaScript高级程序设计》学习笔记(函数)
- js高级程序设计笔记4--函数表达式及闭包
- js高级程序设计笔记1
- JavaScript高级程序设计笔记------函数
- JS高级程序设计笔记(四):类和继承
- JS高级程序设计笔记(五):引用类型
- js笔记(一)-《javascript高级程序设计》- 数组小知识
- 算法4--双栈的利用<学习感悟>
- Python Flask Web框架(四)
- 注解反射使用
- 2012年北理复试上机题
- 各操作系统的判断
- JS高级程序设计笔记(六)- 函数
- Python IDE py开发软件工具
- java中锁的总结
- 基于Memcached的tomcat集群session共享
- Makefile经典教程
- github获取token
- 数据结构实验之栈一:进制转换
- 汉诺塔的递归实现
- 利用字典key的唯一性查找重复的字符串(去掉重复的字符串也是一样的)