本篇文章给大家带来了javascript中关于箭头函数和剩余参数的相关知识,箭头函数与剩余参数都非常简洁,下面我们就一起来看一下怎样去使用,希望对大家有帮助。
箭头函数表达式语法比函数表达式更简洁,即函数的一种简化形式。
它的写法:
() => {}; // 可以用来写一个匿名函数
它的结构:
const / let 函数名 参数 => 函数体
比如现在有一个一般形式的函数表达式
立即学习“Java免费学习笔记(深入)”;
let add = function(x, y) { return x + y;};
可以用箭头函数来写:
let add = (x, y) => { return x + y;};
// 对于单个参数,我们可以省略外面的圆括号let addOne = x => { return x + 1;}
// 对于单行返回函数体,可以同时省略 {} 和 returnlet add (x, y) => x + y;
// 对于返回单行对象,在外面加个 ()let add (x, y) => ({ value: x + y;});
箭头函数没有 this,它会根据作用域链在外层中寻找 this。
举个例子:
var A = 1;let fun = { A: 2, printA: () => { console.log(this.A); }, printAA: function() { let print = () => { console.log(this.A); } print(); }};fun.printA(); // 1fun.printAA(); // 2
调用 printA,里面是输出 this.A,由于箭头函数没有 this,所以在外层寻找,外层是 fun。在这里,fun.printA()是在全局作用域中调用的,所以外层的 this 指向的是 window,由于之前用 var 定义了一个 A = 1,所以输出的是 1。
调用 printAA,在里面调用了 print(),输出 this.A,看 print 这个函数,是个箭头函数,他没有 this,所以找外层,它的外层是 printAA,它是由 fun 调用的,所以它的 this 指向 fun,所以输出 fun 中定义的 A,也就是 2。
实例化构造函数之后,它的 this 指向实例化的对像,而箭头函数没有 this,所以它不能用来做构造函数。
需要 this 指向调用对象的时候
需要使用 arguments 的时候
箭头函数中没有 arguments,可以使用剩余参数来存参数。
举个例子:
let add = (x, y, z, ...args) => { console.log(x, y, z, args);};
args 就是剩余参数。
剩余参数是个数组,它即使没有值,也是以一个空数组形式存在。
比如:
let add = (x, y, z, ...args) => { console.log(x, y, z, args);}add(1, 2, 3);
x, y, z 对应参数 1, 2, 3,由于剩余参数没有值,所以空数组形式存在。
由于箭头函数没有 arguments,所以我们可以使用剩余参数替代 arguments 获取实际参数
举个例子:
const print = (...args) => { console.log(args);};print(1, 2);
let add = (...args) => {};
【相关推荐:javascript学习教程】
以上就是你必须了解JavaScript箭头函数与剩余参数的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号