ES6----箭头函数

目录

基本语法是:

基本用法:

注意:

普通函数和箭头函数区别?

1.this指向问题

2.普通函数 arguments保存实际参数

3.箭头函数 rest参数保存实际参数

4.表现形式不同


基本语法是:

(参数) => {函数体}

基本用法:

let sayName=()=>{
	console.log(this.name);
	}

等价于  
let sayname=function(){
console.log(this.name);
}

注意

1 有且只有一个参数时,小括号可以省略 。 当箭头函数没有参数或者有多个参数,要用小括号括起来。


2  当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。


3   当箭头函数要返回对象的时候,为了区分于代码块,要用 () 将对象包裹起来 。

let  person= (id,name) => ({id: id, name: name});
person(6,"tom");  // {id: 6, name: "tom"}

4 箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象) 。

let name='莉莉';
let sayName=()=>{
	console.log(this.name); // undefiend {}
	// 箭头函数没有this
	// 内部this指向声明箭头函数时外部作用域中得this
}
let obj={
	// es6对象属性简写 当属性名和变量名一致 简写为属性名
	name
	
	// 箭头函数没有this 内部this指向声明箭头函数时外部作用域中this
	sayName:()=>{
		console.log(this.name,'111');
	} 
	
};
obj.sayName();


//undefined

let name ='lili'  //在当前作用域定义的name
let name=()=>{
console.log(this.name)   //this指向当前模块 {}   当前模块并没有定义name
}
let obj={
name,
sayName(){
return name    
}
};
obj.sayName()(); //执行箭头函数

//undefined

let name='明明';   //在当前作用域定义的name
module.exports.name='莉莉';  //在当前模块定义的name
let sayName=()=>{
	console.log(this.name);
}
	let obj={
		name,
		sayName(){
			return sayName 
		}
	}
	obj.sayName()();
	console.log(this===module.exports);

//莉莉
//true

es5函数内部属性有this和arguments,箭头函数内arguments不再保存实参,如果想接受实参,可以使用rest参数 返回一个保存实参的数组 拓展运算符

普通函数和箭头函数区别?

1.this指向问题

2.普通函数 arguments保存实际参数

3.箭头函数 rest参数保存实际参数

4.表现形式不同

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值