JavaScript 箭头函数是什么,如何创建

JavaScript 箭头函数是什么,如何创建

函数 是创建和组合相关代码片段的基本构建单元,每种编程语言都提供了一些写函数的约定。箭头函数语法是JavaScript中用于创建函数的最常用和高效的一种。

创建箭头函数的方法: 要编写箭头函数,只需创建一个变量,可以是const、let或者var,但最好选择const以避免不必要的问题。然后将函数代码分配给该变量,就这样。从现在开始,您可以通过在该变量前面写括号来调用该函数。使用箭头函数语法,我们将函数视为对象,并将定义分配给某个变量。以下是箭头函数的语法:

const myFunction = (param1, param2,
    .... paramN) => { // function code }
const myFunction = (param) => { // function code }
                      or 
const myFunction = param => { // function code }  
const myFunction = param => { return param*param }
                      or 
const myFunction = param => param*param

当只有一个语句且JavaScript将其语句视为返回值时,可以省略{}括号,当只有一个参数时也不需要写括号()。箭头函数不能在(params)和箭头=>之间换行,=和>字符之间也不应有任何空格。

示例1: 在这个示例中,我们将创建一个程序,首先使用普通函数,然后使用箭头函数来相加两个数字。

使用普通函数:

Javascript

function myFunction() {
    let a = 5, b = 4;
    return a + b;
}
console.log(myFunction());

使用箭头函数:

JavaScript

const myFunction = () => {
    let a = 5, b = 4;
    return a + b;
}
console.log(myFunction());

输出: 在箭头函数中,我们不写function关键字,因此需要将其分配给某种变量,就像我们在这里将其分配给一个名为myFunction的常量变量一样。

9

示例2: 在这个示例中,我们将逐个创建单个表达式的函数,同时使用普通函数和箭头函数。

使用普通函数:

Javascript

function myFunction(num) {
    return num * num;
}
console.log(myFunction(4));

使用箭头函数:

Javascript

const myFunction = num => num * num;
// Equivalent to const myFunction = (num) =>{ return num*num; }
 
console.log(myFunction(4));

输出: 当函数中只有一个返回表达式时,箭头语法提供了一种更简单的编写方式。我们可以省略参数的括号,以及与代码块大括号一起的返回语句。

16

箭头函数的限制: 在前面我们已经看到了如何轻松地使用箭头语法创建函数,现在是时候看看一些限制了,因为在几种情况下它们不会像普通函数那样工作。

没有绑定的 this 关键字: 它不能作为方法使用,因为没有绑定 this 关键字。箭头函数包含词法 this 代替它们自己的 this。this 的值将基于其定义所在的作用域。因此,箭头函数在 window 作用域中定义,因此 this 将引用 window 对象而不是函数所在的对象。没有使用 ‘num’ 的任何属性或方法,因此将打印 undefined。

JavaScript

var obj = {
    num: 10,
    myFunc: () => { console.log(this.num) }
}
 
obj.myFunc();

输出:

undefined

解释: 普通的函数包含了 this 关键字,它指向它所属的对象,因此该函数属于 obj 对象,并且在对象内部存在 num 属性,所以会成功输出。

箭头函数不能用作构造函数。

示例: 这个示例表明箭头函数不能用作构造函数。

Javascript

var MyFunction = () => { };
var instan = new MyFunction();

输出:

JavaScript 箭头函数是什么,如何创建

call, apply和bind方法与箭头函数不兼容: 下面是这些方法的概括回顾,以传统函数的示例为例,之后我们将看到它与箭头函数不兼容。

  • call()方法: 该方法用于调用对象的任何函数,并在函数内部,this将引用传递的对象。
  • apply()方法: 它的工作方式和call方法类似。在这里,我们不是分别传递参数,而是传递一个参数数组。
  • bind()方法: 该方法也用于调用对象的任何函数,但它通过绑定对象创建该函数的另一个副本,以供以后使用。

示例: 此示例显示了在Javascript中使用call()、apply()和bind()方法的用法。

Javascript

let studentObj1 = {
    studentName: "Twinkle Sharma",
    branch: "Computer Science & Engineering"
}
 
function showDetails(position) {
    console.log(`{this.studentName} of{this.branch} is a ${position}`)
}
 
showDetails.call(studentObj1, "Technical Writer");
 
showDetails.apply(studentObj1, ["Technical Writer"]);
 
const myFunction = showDetails.bind(studentObj1);
 
myFunction("Technical Writer");

输出: 因为这指的是箭头函数定义的范围,所以这意味着window对象。这就是为什么call、apply和bind方法不能与箭头函数一起使用的原因。因此,我们只能通过箭头函数来访问window。由于窗口对象中不存在student name和branch属性,因此会打印undefined。

JavaScript 箭头函数是什么,如何创建

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程