在JavaScript中,函数是非常重要的一部分,本文将从多发个方面来解析了解函数。那么首先我们要先知道什么是函数?简单来说,函数是一段可以反复调用的代码块,可以用来帮助我们封装、调用代码!


函数的声明

在了解了函数存在的意义和作用后,我们要怎样才能得到一个函数呢?函数的声明一共有五种方法,接下来我们来详细了解一下。

  • 具名函数
function x(input1,input2){
    return 
}

其中,function是关键字不可以更改,x是函数名,如果不写return,会自动补全为return undefined


  • 匿名函数(把没有名字的函数赋值给变量)
var x = function(input1,input2){
    return 
}

  • 把有名字的函数赋值给变量
var x = function y(input1,input2){
    return 
}

这种方法与具名函数的区别是,具名函数可直接打印出函数如图一,而这种方法打印出的却是报错如图二。其原因是两者的作用域不一样。

图一.png图一

图二.png图二


  • window.Function函数对象
f = new Function('x','y','return x + y')

  • 最炫的方式登场!箭头函数
f = (x,y) => {return x + y}

name属性

函数中的name属性各种情况如图三:

图三.png图三


如何调用函数?

函数中的call属性可以用来调用函数。调用函数一定要加(),如f.call(undefined,x,y);如果直接写函数名不加()是不可以调用的,函数不会被执行。返回值为原始值(数字,字符串,布尔值)的this会指向该原始值的自动包装对象。


this和arguments

什么是this?call的第一个参数可以用this得到
什么是arguments?call后面的参数可以用arguments得到,得到的是除第一个参数外所有参数组成的伪数组。


闭包

如果一个函数使用了它范围外的变量,那么这个函数+这个变量就叫做闭包。


Caddo
59 声望4 粉丝