zoukankan      html  css  js  c++  java
  • 07.函数表达式——JavaScritp高级程序设计(笔记)

    00.函数声明提升(function declaration hoisting):执行代码之前会先读取函数声明。

    01.匿名函数(anonymous function)

      var sayHi = function() {};

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

        例如:

           function createComparisonFunction(propertyName) {

              return function (object1, object2) {

                var value1 = object1[propertyName];

                var value2 = object2[propertyName];

              }

            }

    03.作用链本质上是一个指向变量的指针列表,他只引用但不实际包含变量对象。

    04.this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。不过,匿名函数的执行环境具有全局性,因此其this对象通常指向window。内部函数在搜索这两个变量时,指挥搜索到其活动对象位置,因此永远不可能直接访问外部函数中的这两个变量。

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

    06.到底是使用实例变量,还是静态私有变量,最终还是要视你的具体需求而定。

    07.所谓单例(singeton),指的就是只有一个实例的对象。

    08.从本质上来讲,这个对象字面量定义的是单例的公共接口。

    09.小结

      a.函数表达式不同于函数声明。函数声明要求有名字,但函数表达式不需要。没有名字的函数表达式也叫作匿名函数

      b.在无法确定如何引用应用函数的情况下,递归函数就会变得比较复杂

      c.递归函数应始终argumnets.callee来递归地调用自身,不要使用函数名——函数名可能会发生变化。

      d.在后台执行环境中,闭包的作用链包含着它自己的作用域、包含函数的作用于和全局作用域

      e.函数的作用域及其所有变量都会在函数执行结束后背销毁

      f.当函数返回一个闭包时,这个函数的作用域将会有izhi在内存中保存到闭包不存在位置。

      g.即使JavaScript中没有正式的私有对象属性的概念,但可以使用闭包来实现共有方法,而通过公有方法可以访问在包含作用于中定义变量

      h.有权访问私有变量的共有方法叫做特权方法

      i.可以使用构造函数模型、原型模式来实现自定义类型的特权方法,也可以使用模块模式、增强的模块模式来实现单利的特权方法。

      j.

      k.

  • 相关阅读:
    kbmMW RunInTransaction
    有感Delphi 2021路线图
    kbmMW 5.13.00 Scheduler不执行SynchronizedAfterRun
    Delphi 10.4.1的编译器bug终于修正了!
    OUI作者开源作品
    kali安装pwntools遇到的一些问题
    电子公文传输系统团队项目
    AI 学习框架
    Linux top命令的用法详细详解
    c# DateTime时间格式和JAVA时间戳格式相互转换
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/9533374.html
Copyright © 2011-2022 走看看