首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在箭头函数中使用name=arguments作为函数参数是一种好的做法吗?

在箭头函数中使用name=arguments作为函数参数是一种不推荐的做法。箭头函数是ES6中引入的一种新的函数定义方式,它具有更简洁的语法和更方便的作用域绑定特性。然而,箭头函数与传统的函数定义方式有一些重要的区别。

首先,箭头函数没有自己的arguments对象。在箭头函数中使用name=arguments作为函数参数,实际上是将外部作用域中的arguments对象赋值给name变量。这样做会导致两个问题:一是在箭头函数内部无法直接访问arguments对象,因为它是外部作用域中的变量;二是在箭头函数内部修改name变量的值不会影响外部作用域中的arguments对象。

其次,箭头函数的this指向是固定的,指向定义时所在的对象,而不是调用时的对象。这意味着在箭头函数中无法使用call、apply、bind等方法显式地改变this的指向。而arguments对象是与函数调用时的上下文相关的,它与this指向紧密相关。因此,在箭头函数中使用name=arguments作为函数参数会导致this和arguments的指向问题。

综上所述,为了避免混淆和错误,不推荐在箭头函数中使用name=arguments作为函数参数。如果需要在箭头函数中获取函数参数,可以使用rest参数或者使用普通的命名参数。例如:

代码语言:txt
复制
// 使用rest参数获取函数参数
const myFunction = (...args) => {
  console.log(args);
};

// 使用普通的命名参数
const myFunction = (name, age) => {
  console.log(name, age);
};

以上是对于箭头函数中使用name=arguments作为函数参数的回答,希望能够满足您的需求。如果您对云计算、IT互联网领域的其他问题有任何疑问,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你真的了解ES6函数特性么?

前言 函数所有编程语言中重要组成部分,Es6出现之前 JavaScript函数语法一直没有太大变化,从而遗留了很多问题和隐晦做法,导致实现一些功能需要编写很多代码。...非严格模式下,函数命名参数变化会体现在arguments对象上,arguments获取当前函数实参,arguments非严格模式下它跟形参映射关系,就是形参有变化arguments跟着变。...Es6使用默认参数值对arguments影响 Es6,如果一个函数使用了默认参数值,那么arguments对象行为都将与JavaScript严格模式下保持一致。...处理无命名参数 js函数参数数量任意,当传入更少数量,默认参数特性可以有效简化函数声明代码。当传入更多数量,Es6也同样提供了更好方案。...箭头函数 Es6箭头函数其中最有趣特性,箭头函数一种使用箭头=>定义函数新语法,但是它与传统JavaScript函数有些不同,具体看下面几点。

42830

JavaScript箭头函数

你可以把函数存储变量,把它们作为参数传递给其他函数,并从其他函数把它们作为值返回。你可以使用JavaScript箭头函数来做所有这些事情。 无圆括号语法 在上述示例函数没有参数。...这个内部函数又有一个叫做name参数,并使用greeting和name值返回一个字符串。...因此,函数处理器this也被绑定到全局作用域中--也就是Window对象。 因此,如果你想让this引用程序开始按钮,正确做法使用一个常规函数,而不是一个箭头函数。...它们从父级继承this值,正是因为这个特点,在上面这种情况下就是很好选择。 不正常工作情况 箭头函数并不只是JavaScript编写函数一种花里胡哨新方法。...这意味着arguments对象箭头函数不可用

2.1K20

掌握JS函数几种参数形式(函数基础)

本文中,会使用一些有趣例子来解释 JS 必须有效地处理函数参数所有特性。 1.函数参数 JS 函数可以有任意数量参数。咱们来定义具有0、1和2个参数函数。...注意,如果将undefined设置为第二个参数sum(1, undefined), param2也将初始化为0。 3.解构参数 JS函数参数,咱特别喜欢解构特性。...这样可以使用 arguments 对象来获取传入所有参数arguments对象是所有(非箭头函数中都可用局部变量。你可以使用arguments对象函数引用函数参数。...:箭头w函数没有arguments 。...作为arguments更好替代,可以使用剩余参数特性。它也保存参数列表,但是,它将它们存储到数组

2.8K20

掌握JS函数几种参数形式(函数基础)

函数一段结合在一起执行特定任务代码,函数一般使用参数与外部进行交互。要编写简洁高效JS代码,必须掌握函数参数本文中,会使用一些有趣例子来解释 JS 必须有效地处理函数参数所有特性。...注意,如果将undefined设置为第二个参数sum(1, undefined), param2也将初始化为0。 3.解构参数 JS函数参数,咱特别喜欢解构特性。...这样可以使用 arguments 对象来获取传入所有参数arguments对象是所有(非箭头函数中都可用局部变量。你可以使用arguments对象函数引用函数参数。...:箭头w函数没有arguments 。...作为arguments更好替代,可以使用剩余参数特性。它也保存参数列表,但是,它将它们存储到数组

5K41

深入理解JavaScript函数参数|技术创作特训营第一期

因此,你甚至可以声明函数时不设置形参。 上面例子,foo() 函数第一个参数 a,第二个参数b ,可以通过 arguments[x] 方式来分别获取同样值 。...箭头函数没有 arguments 如果函数使用箭头语法定义,那么函数没有 arguments 对象,只能通过定义形参来访问。...但这个 arguments,并不是箭头函数,而是属于外部普通函数,当箭头函数访问 arguments 时,顺着作用域链找到了外部函数arguments。...你可以探讨何时使用默认参数,以及如何编写具有良好默认行为函数。 可变参数ES6之后,JavaScript引入了一种语法,称为“剩余参数”。...这使得函数可以接受任意数量参数,而不需要提前指定参数数量。你可以探讨可变参数使用方式和限制,并且学习如何编写可变参数函数。 高阶函数:高阶函数指可以接受函数作为参数或返回函数函数

59350

JavaScript入门笔记(5)函数

函数 函数就是最基本一种代码抽象方式 函数声明与调用 JavaScript声明函数方法有两种 声明一个有名称函数使用类似C语言function name(arguments) {}...JavaScript参数传递方式很灵活,可以使用arguments和rest关键字获取动态数量参数 arguments关键字指向所有传入参数arguments一个对象,不能使用for of...,已经申明参数后添加...rest,函数可已使用rest参数获取被声明参数以外参数 function test_rest(a,b,...rest) { console.log("a =...最常见做法用一个var申明函数内部用到所有变量 方法 被绑定在对象里函数称为方法,函数可以使用this关键字访问本对象属性和方法,调用使用使用对象名.方法名() var test...箭头函数一种特殊匿名函数,相对于普通匿名函数最大优势在于修复了this指针乱飞问题,调用箭头函数时候this指向调用它对象 只有一句箭头函数可用(arguments) => (func

63180

【译】《Understanding ECMAScript6》- 第二章-函数

利用这种特性,函数可以根据参数数量进行不同处理,通常做法,如果某个参数没有被传入,则将其赋值一个默认值。...虽然通过索引值遍历arguments对象并不困难,但这仍然一种很精细工作。ES6新增剩余参数机制可以为上述问题提供相对便利解决方案。 剩余参数声明语法命名参数配合...前缀。...开发者可以根据是否有声明提升需求来决定使用一种声明方式。 ES6块级域函数非严格模式与严格模式下表现有细微差别。...箭头函数被设计初衷某些应用场景下取代匿名函数,它们不能作为构造函数使用,不具备很长生命周期。箭头函数最佳应用场景作为常规函数回调函数使用。...箭头函数ES6一项重大改进。箭头函数提出是为了取代匿名函数应用场景,它有更加简洁语法,this语义绑定,并且没有arguments对象。箭头函数this不能被修改,不能作为构造函数使用

1.3K70

JavaScript参数传递,参数默认值,参数收集与展开

因此,开发中最好不要依赖这种同步机制,也就是说不要同时使用形参和它在arguments 对象对应值。...箭头函数没有 arguments 如果函数使用箭头语法定义,那么函数没有 arguments 对象,只能通过定义形参来访问。...arguments,并不是箭头函数,而是属于外部普通函数,当箭头函数访问 arguments 时,顺着作用域链找到了外部函数arguments。...函数定义了一个对象 defaultObj ,变通地利用其中属性作为参数默认值,然后利用 Object.assagin() 把传入对象和默认对象进行合并,defaultObj 属性会被 obj...而剩余参数它不同于 arguments 对象,它是真正 Array 实例,能够很方便地使用数组方法。并且箭头函数也支持剩余参数

43730

【JS】374- 重学 this 关键字

默认绑定一种情况 函数函数作为参数传递,例如 setTimeOut和 setInterval等,这些函数传递函数 this指向,非严格模式指向全局对象。...当这个新函数被调用时,bind() 第一个参数作为它运行时 this,之后一序列参数将会在传递实参前传入作为参数。...箭头函数没有 arguments 常规函数可以直接拿到 arguments 属性,但是箭头函数如果使用 arguments 属性,拿到箭头函数外层函数 arguments 属性。...箭头函数没有自己this 箭头函数没有自己 this,箭头函数 this 不能用 call()、apply()、bind() 这些方法改变 this 指向,箭头函数 this 直接指向...this直接指向 调用函数上一层运行时,这段代码 obj.foo调用时候如果使用箭头函数this应该指向 obj ,但是使用箭头函数,往上一层查找,指向就是全局了,所以输出结果

1.5K10

重学 this 关键字(看完不全懂您找我哦)

默认绑定一种情况 函数函数作为参数传递,例如 setTimeOut和 setInterval等,这些函数传递函数 this指向,非严格模式指向全局对象。...当这个新函数被调用时,bind() 第一个参数作为它运行时 this,之后一序列参数将会在传递实参前传入作为参数。...箭头函数没有 arguments 常规函数可以直接拿到 arguments 属性,但是箭头函数如果使用 arguments 属性,拿到箭头函数外层函数 arguments 属性。...箭头函数没有自己this 箭头函数没有自己 this,箭头函数 this 不能用 call()、apply()、bind() 这些方法改变 this 指向,箭头函数 this 直接指向...this直接指向 调用函数上一层运行时,这段代码 obj.foo调用时候如果使用箭头函数this应该指向 obj ,但是使用箭头函数,往上一层查找,指向就是全局了,所以输出结果

49520

重学 this 关键字用法

默认绑定一种情况 函数函数作为参数传递,例如 setTimeOut和 setInterval等,这些函数传递函数 this指向,非严格模式指向全局对象。...当这个新函数被调用时,bind() 第一个参数作为它运行时 this,之后一序列参数将会在传递实参前传入作为参数。...箭头函数没有 arguments 常规函数可以直接拿到 arguments 属性,但是箭头函数如果使用 arguments 属性,拿到箭头函数外层函数 arguments 属性。...箭头函数没有自己this 箭头函数没有自己 this,箭头函数 this 不能用 call()、apply()、bind() 这些方法改变 this 指向,箭头函数 this 直接指向...this直接指向 调用函数上一层运行时,这段代码 obj.foo调用时候如果使用箭头函数this应该指向 obj ,但是使用箭头函数,往上一层查找,指向就是全局了,所以输出结果

59410

什么高阶函数

高阶函数接受另一个函数作为参数或返回一个函数作为返回值或两者兼有的函数。...如果使用function关键字定义(非箭头函数时,可以函数内部访问arguments对象,从中取得传进来每个参数值。...(通过arguments对象length属性传入参数个数) 箭头函数参数 如果函数使用箭头语法定义,那么传给函数参数将不能使用arguments关键字访问,而只能通过定义命名参数访问。...虽然箭头函数没有arguments对象,但可以包装函数把它提供给箭头函数。...('ff')); // 'xx ff xx' 复制代码 ES6 写法,只要在函数定义参数后面用=就可以为参数赋一个默认值 使用默认参数时,arguments 对象值不反映参数默认值,只反映传给函数参数

32910

《你不知道JavaScript》-- this(笔记)

; foo();//2 代码,foo() 直接使用不带任何修饰函数引用进行调用,只能使用默认绑定规则。...2.4 new绑定 传统面向类语言中,“构造函数一些特殊方法,使用 new 初始化类时会调用类构造函数,通常形式: something = new MyClass(...); JavaScript... JavaScript ,构造函数只是一些使用 new 操作符时被调用函数,它们并不会属于某个类,也不会实例化一个类,实际上,它们甚至都不能说是一种特殊函数类型,只是被 new 操作符调用普通函数而已...foo(){ console.log(this.a); } var a = 2; foo.call(null);//2 一种常见做法使用 apply(...)...--箭头函数箭头函数不是使用 function 关键字定义使用被称为“胖箭头操作符 “=>” 定义箭头函数使用 this 四种标准规则,而是根据外层(函数或全局)作用域来决定 this

25520

JS箭头函数之:为何用?怎么用?何时用?

el.length); // [2, 3, 4, 7] // 在这个例子,因为我们只需要`length`属性,所以可以使用参数结构 // 需要注意字符串`"length"`我们想要获得属性名称...不绑定this 箭头函数出现之前,每个新定义函数都有它自己this值(构造函数情况下一个新对象,严格模式函数调用则为undefined,如果该函数作为"对象方法"调用则为基础对象等...foo 函数arguments对象,arguments[0] n return f(); } foo(1); // 2 大多数情况下,使用剩余参数相对使用arguments对象更好选择...例如在Vue.js,有一种通用模式,就是使用mapState将Vuex存储各个部分,直接包含到Vue组件。...尽管如此,就像其他语言特性,他们有各自优缺点。因此我们使用它应该仅仅是作为一种工具,而不是无脑简单全部替换为箭头函数

3.8K10

JS Advance --- ES6语法(二)

,而 arguments 对象包含了传给函数所有实 arguments对象不是一个真正数组,而rest参数一个真正数组,可以进行数组所有操作 rest参数ES6提供一种替代arguments...来获取函数参数方式,所以开发推荐使用剩余参数来替换arguments 箭头函数 箭头函数内部没有this,如果需要使用,会沿着作用域链去使用上层作用域中this 箭头函数内部没有arguments...,如果需要使用,可以使用剩余参数进行替换 箭头函数内部没有显示原型对象prototype,这也就意味着箭头函数只能作为普通函数被调用,无法使用new关键字来进行调用 const foo = ()...Steven') // apply第一个参数null,表示不指定函数调用内部this,依旧使用原本那个this // 第二个参数一个数组,apply实际调用时候,会自动将第二个参数解构出来并依次作为函数参数被传入...,从而覆盖掉它内部某个属性 Symbol就是为了解决上面的问题,用来生成一个独一无二值 Symbol值通过Symbol函数来生成,生成后可以作为属性名 ES6,对象属性名可以使用字符串,也可以使用

1.1K10

ES6箭头函数

箭头函数具有更短语法形式,隐式绑定了this,并且没有自己this、arguments、super 或 new.target。基本语法:箭头函数使用箭头(=>)来分隔参数函数体。...在上面的示例,我们定义了一个简单箭头函数hello,它不带参数,并在函数打印了一条消息。隐式返回:箭头函数还具有隐式返回特性。...let add = (a, b) => a + b;console.log(add(3, 5)); // 输出 8在上面的示例箭头函数greet接受一个参数name,并在函数体中使用参数打印一条问候消息...greet方法内部,我们使用箭头函数来定义一个延迟执行函数,该函数打印问候消息并使用this.name访问person对象name属性。...注意事项:尽管箭头函数具有许多优点,但也有一些限制和注意事项:箭头函数没有自己this,因此无法用作构造函数箭头函数也没有自己arguments对象,但可以通过使用剩余参数语法来获取参数

20240

千万别再一直无脑使用ES6箭头函数了,它虽然很有用但并不是万能

fn2() //我普通函数 //我箭头函数 在这个例子,fn1与fn2完全等价,这就是箭头函数基本使用。...箭头函数this定义时绑定,而不是运行时绑定 箭头函数内没有arguments对象 箭头函数不能作为构造函数,原因也是因为它内部没有自己this 我们来用几个例子验证这几个注意点 (1)例子1 function...在这个例子,我们箭头函数打印arguments,最后返回却是普通函数传入实参内容,说明箭头函数没有arguments对象。...四、不宜使用箭头函数场景 第三部分介绍了箭头函数注意点以后,我们可以看到,有些时候使用箭头函数不合适。...() //返回 undefined 我们可以看到定义类方法时,我们使用箭头函数,准备通过this.name获取objname,最后返回了undefined。

67510
领券