• js-JavaScript高级程序设计学习笔记5


    第七章 函数表达式

    1、函数声明的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明,因此可以把函数声明放在调用它的语句后面。

    2、使用函数表达式创建的函数叫做匿名函数(拉姆达函数),因为function关键字后面没有标识符,匿名函数的name属性是空字符串。在调用前必须先赋值。

    3、arguments.callee是一个指向正在执行的函数的指针,因此可以用它来实现对函数的递归调用,用它代替函数名,无论怎么调用函数都不会出问题。在严格模式下,不能通过脚本访问arguments.callee,可以使用命名函数表达式达到相同的结果。P178.

    4、闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数

    5、闭包会携带包含它的函数的作用域,因此会比其他函数占用更多的内存,过度使用闭包可能会导致内存占用过多。

    6、闭包只能取得包含函数中任何变量的最后一个值,所以在循环中使用闭包要注意。

    7、匿名函数的执行环境具有全局性,因此其this对象通常指向window

    8、块级作用域(私有作用域)的匿名函数语法:

    (function(){
        //块级作用域
    })();

    9、私有作用域经常用在全局作用域中,限制向全局作用域添加过多的变量和函数。一般来说,尽量少向全局作用域中添加变量和函数。

    10、任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。私有变量包括函数的参数、局部变量和函数内部定义的其他函数

    11、有权访问私有变量和私有函数的公有方法称为特权方法。有两种在对象上创建特权方法的方式,一是在构造函数中定义特权方法,二是使用静态私有变量实现特权方法。

    12、模块模式是为单例创建私有变量和特权方法。单例指的是只有一个实例的对象。如果必须创建一个对象并以某些数据对其进行初始化,同时还要公开一些能够访问这些私有数据的方法,那么就可以使用模块模式。

  • 相关阅读:
    (转)非常好的协同过滤入门文章
    PHP错误:Call to undefined function curl_init()
    (转)Ubuntu下Apache、php、mysql默认安装路径
    (转)matlab各类数学公式
    centos7下安装momgodb3
    centos7 使用mount 挂载window10 (超简单)
    Centos7 安装nginx1.14
    Centos7 安装MySQL5.7
    python3.5 安装 numpy1.14.4
    python3 tkinter 桌面软件教程
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6110156.html
Copyright © 2020-2023  润新知