箭头函数的特性有什么?让我为大家介绍一下吧!
1.不绑定arguments,用rest参数…解决
let fun = ()=>{ console.log(arguments) //报错 arguments is not defined } fun()
可以使用剩余参数
let fun = (...a)=>{ console.log(a) //[1, 2, 3] } fun(1,2,3)
2.本身没有this的概念,捕获其所在上下文的 this 值,作为自己的 this 值,this指向全局
const obj = { name:"zs", age:18, fun(){ console.log(this) //this指向obj }, fn:()=>{ console.log(this) //this指向window } } obj.fun() obj.fn()
3.箭头函数不能使用new
let Fun = ()=>{} let zs = new Fun() console.log(zs) //Fun is not a constructor(构造函数)
4.箭头函数没有原型属性(prototype)
let Fun = ()=>{} console.log(Fun.prototype) //undefined
5.箭头函数不能当做Generator函数,不能使用yield关键字
如果大家想了解生成器可以阅读一下,点击转跳ES6初步了解生成器
普通函数中
function * fun() { yield 111 } let iterator = fun() console.log(iterator)
6.箭头函数有constructor、length属性
let fun = ()=>{ console.log(constructor) //ƒ Window() { [native code] } console.log(length) // 0 } fun()
感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!