目录
箭头函数
箭头函数就是把 function去掉,在小括号后面加=>
((a, b) => {
console.log(a, b);
console.log('箭头函数'); //箭头函数
})(1, 2)
let demo = () => {
console.log('箭头函数'); //箭头函数
}
demo()
箭头函数的特点
1、如果有一个参数可以省略小括号
let demo = x => {
console.log(x); //1
}
demo(1)
2、如果函数返回值只有一条语句,可是省略{}和return
let demo = x => x
console.log(demo(1)); //1
3、箭头函数没有arguments内置对象
let demo = () => {
console.log(arguments);
}
4、箭头函数不能用于创建构造函数
let Person = function () {
console.log('1'); //1
}
let p1 = new Person()
console.log(p1);
let Person = () => {
}
let o1 = new Person()
console.log(p1); // is not defined
5、箭头函数没有prototype属性
let Person = () => {
}
Person()
console.log(Person.prototype); //undefined
6、call,apply可以调用箭头函数,但不能改变this指向
var name = 'window'
let demo = function () {
console.log('测试'); //测试 测试 测试
console.log(this.name); // window obj obj
}
var obj = {
name: 'obj'
}
demo()
demo.call(obj)
demo.apply(obj)
let fn = () => {
console.log(this.name); //window
console.log('箭头函数'); //箭头函数
}
fn()
fn.call(obj)
fn.apply(obj)
箭头函数的应用
箭头函数的this指向父作用域,或调用它的地方
var obj = {
birth: 1990,
getAge: function () {
console.log(new Date().getFullYear() - this.birth); //33
}
}
obj.getAge()
var birth = 2000
var obj = {
birth: 1990,
getAge: () => {
var fn = () => {
return new Date().getFullYear() - this.birth
}
return fn()
}
}
console.log(obj.getAge()); //23