函数类型

函数类型

函数是对象,函数名实际上为一个指向函数对象的指针,不会与某个函数绑定。

函数的定义

  • 使用函数声明语法定义
  • 使用函数表达式定义【不推荐】
  • 使用Function构造函数

注意:使用不带圆括号的函数名是访问函数指针,而并非是调用函数。

函数声明和函数表达式的区别:
  1. 解析器会先读取函数声明,并使其在执行任何代码前可用
  2. 函数表达式是当解析器执行到它所在的代码行,才会被解释执行

函数的内部属性

  1. arguments: 类数组对象,包好所有传入函数中的参数
  2. this: 引用函数执行的环境对象
  3. length: 函数接收的命名参数的个数
  4. prototype: 保存所有的实例方法所在 【后一篇会详细介绍】
    prototype是不可枚举的,所以使用for-in是无法发现的。

函数的方法:

  1. apply/call:非继承而来的方法,在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
  2. apply()方法接收两个参数:1)在其中运行的函数作用域 2)Array的实例或者arguments对象
    注意:在严格模式下,未指定环境对象而调用函数,则 this不会转型为window,而为undefined.
  3. call()接收参数:1)在其中运行的函数作用域 2)参数直接传递给函数
  4. bind(): 创建一个函数的实例,其this值会被绑定到传给bind()函数的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章