阅读大块头《javascript权威指南》笔记8-函数

  • 函数只定义一次,但可能被执行或调用多次。

  • 形参:函数中定义的变量。

  • 实参:函数中参入的参数对象。

  • 每次调用还会拥有另外一个值,本次调用的上下文,也就是this关键字的值。

  • 如果函数挂载在一个对象上,作为对象的一个属性,这个就称为对象的方法,当通过这个对象来调用函数时,对象就是此次的上下文。

  • 用于初始化一个新创建的对象的函数称为 构造函数(constructor)。

  • 在javascript中,函数也是一个对象,例如可以把函数赋值给变量,或者作为参数传入其他函数。

  • 函数可以嵌套在其他函数中定义,这样它们可以访问它们被定义时所处的作用域中的任何变量,这意味着javascript函数构成了一个闭包(closure)。

  • 函数命名尽量于动词为开头。

  • 函数定义时不会执行,只有调用时才会执行,有4种调用方式。

    1. 作为函数
    2. 作为方法
    3. 作为构造函数
    4. 通过它们的 call() 和 apply() 方法间接调用。
  • 实参对象定义了 callee 和 caller 属性。

    • callee 指代当前正在执行的函数。
    • caller 是非标准的,但大多数浏览器都实现了这个属性,指代的是当前正在执行的函数的函数。
    • 在ECMA5严格模式中,对这两个属性的读写会产生一个类型错误。