函数表达式、闭包

关于函数声明,他的重要特征就是函数声明提升,在执行代码之前会先读取函数声明,意味着可以把函数声明放在调用他的语句后面。

Hi();

function Hi(){

    alert(“Hi”);

}

这就是函数声明。

函数表达式就是有=号的,比如:

var Hi=function(){   }

函数表达式在使用前必须先赋值。

arguments.callee是一个指向正在执行的函数的指针

闭包:有权访问另一个函数作用域中的变量的函数


私有作用域

(function(){

    //

})();

私有变量:函数的参数、局部变量和在函数内部定义的其他函数。函数的外部是不能访问他们的。

特权方法:有权访问私有变量和私有函数的共有方法。使用publicMethod()方法来访问

单例:只有一个实例的对象

递归函数应该始终使用arguments.callee来递归地调用自己


当在函数内部定义了其他函数时,就创建了闭包

     P178 学的有点懵。。。

闭包的作用域链包含着他自己的作用域、包含函数的作用域和全局作用域。

当函数返回了一个闭包时,这个函数的作用域会一直保存,直到闭包不存在

使用闭包可以模仿块级作用域、可以在对象中创建私有变量

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前面我们提到过,函数有两种创建方式,一种是使用函数声明,另外一种是函数表达式。前者可以声明提升,后者则不可以。然而...
    洗阳光阅读 557评论 0 2
  • 闭包 闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数的内部创建另一个函数。 当某...
    胖胖冰阅读 387评论 0 1
  • 定义函数的方法:Function类型 匿名函数——function关键字后面没有标识符的函数。闭包——有权访问另一...
    Wonder233阅读 424评论 0 0
  • 定义函数的方式有两种:函数声明和函数表达式。 函数声明的一个重要特征就是函数声明提升,意思是在执行代码前会先读取函...
    oWSQo阅读 762评论 0 0
  • 电视剧《有你才幸福》中一幕,让我哭了一下午,想了很多很多,关于爱情、婚姻、人生。窗外是蓝蓝的天,白白的云,云下是被...
    清娆阅读 1,353评论 0 1

友情链接更多精彩内容