栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以向JavaScript函数发送可变数量的参数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以向JavaScript函数发送可变数量的参数?

更新 :从ES6开始,您可以在调用函数时简单地使用 传播语法

func(...arr);

由于ES6还希望将参数视为数组,因此还可以在参数列表中使用传播语法,例如:

function func(...args) {  args.forEach(arg => console.log(arg))}const values = ['a', 'b', 'c']func(...values)func(1, 2, 3)

并且可以将其与常规参数结合使用,例如,如果要分别接收前两个参数,而其余的则作为数组接收:

function func(first, second, ...theRest) {  //...}

也许对您有用,您可以知道一个函数需要多少个参数:

var test = function (one, two, three) {}; test.length == 3;

但是无论如何,您可以传递任意数量的参数…

apply
与不需要
this
在函数调用中设置值的情况相比,spread语法更短,更“甜” ,这就是方法。

这是一个应用示例,它是以前的实现方法:

var arr = ['a','b','c'];function func() {  console.log(this); // 'test'  console.log(arguments.length); // 3  for(var i = 0; i < arguments.length; i++) {    console.log(arguments[i]);  }};func.apply('test', arr);

如今,我只建议

apply
仅在需要从数组传递任意数量的参数并设置
this
值时使用。
apply
take是
this
值作为第一个参数,将在函数调用中使用,如果我们
null
在非严格代码中使用,则该
this
关键字将
func
在严格模式下使用“
use strict”显式引用内部的Global对象(窗口)或在ES模块
null
中使用。

还要注意,该

arguments
对象并不是真正的数组,可以通过以下方式将其转换:

var argsArray = Array.prototype.slice.call(arguments);

在ES6中:

const argsArray = [...arguments] // or Array.from(arguments)

但是

arguments
由于传播语法的原因,如今您很少直接使用该对象。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517773.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号