文章目录
一、ECMAScript-箭头函数1. this指向定义时所在的对象,而不是调用时所在的对象2. 不可以当作构造函数,不可以使用new 关键字调用,没有new.target,没有原型,没有super3. 不可以使用arguments对象4. 自动执行函数
一、ECMAScript-箭头函数
es5中的函数定义
function sum(x
, y
) {
return x
+ y
}
var sum = function sum(x
, y
) {
return x
+ y
}
console
.log(sum(4, 5))
箭头函数定义:
let sum
= (x
, y
) => {
return x
+ y
}
console
.log(sum(4, 5))
let sum
= (x
, y
) => x
+ y
console
.log(sum(4, 5))
let x
= x
=> x
let x
= function(x
) {
return x
}
1. this指向定义时所在的对象,而不是调用时所在的对象
let oBtn
= document
.querySelector('#btn')
oBtn
.addEventListener('click', function(){
console
.log(this)
setTimeout(function(){
console
.log(this)
},
1000)
setTimeout(function(){
console
.log(this)
}.bind(this),
1000)
setTimeout(() => {
console
.log(this)
},
1000)
})
2. 不可以当作构造函数,不可以使用new 关键字调用,没有new.target,没有原型,没有super
function People(name
, age
){
console
.log(this)
this.name
= name
this.age
= age
}
var p1
= new People('zhangsan','18')
console
.log(p1
)
let People = (name
, age
) => {
this.name
= name
this.age
= age
}
let p2
= new People('zhangsan','18')
console
.log(p2
)
3. 不可以使用arguments对象
let foo = function(){
console
.log(arguments
)
}
foo(1, 2, 3)
let foo = () => {
console
.log(arguments
)
}
foo(1, 2, 3)
let foo = (...args
) => {
console
.log(args
)
}
foo(1, 2, 3)
4. 自动执行函数
(function(){
console
.log(2)
})()
(function(){
console
.log(3)
}())
(()=>{
console
.log(4)
})()
(()=>{
console
.log(5)
}())
转载请注明原文地址: https://lol.8miu.com/read-26044.html