zoukankan      html  css  js  c++  java
  • 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数据库连接mysql与mysqli的区别与用法
    PHP自定义环境搭建(apache、php)
    2021-11-04 CCPC女生赛 ABCDGIK 题解
    Virtual Judge 20211026 日常训练 ABCDEFG题解
    Spring AOP:@DeclareParents 为对象添加方法
    Spring AOP:@Around 的 JavaConfig 写法
    Spring AOP:@Before、@After 的 JavaConfig 写法
    spring事务传播属性
    缓存与数据库的一致性问题怎么解决
    Java多线程之CyclicBarrier
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6110156.html
Copyright © 2011-2022 走看看