JavaScript----箭头函数

本文详细介绍了JavaScript中箭头函数的使用方法及其与传统函数的区别,包括语法简化、this指向特性、不能作为构造函数使用等关键特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript中箭头函数类似于Java中的lambda表达式,这种函数的出现大大简化了函数的定义

传统函数:

<script type="text/javascript">
	function add(a,b){
		return a+b;
	}
	var result = add(1,1);
	console.log(result);
</script>

箭头函数:

<script type="text/javascript">
	var add = (a,b)=>{
		return a+b;
	}
	var result = add(1,1);
	console.log(result);
</script>

a、如果函数体只有一行代码,则函数大括号可以省略如果该行代码用于返回结果,return必须忽略,如下例子:

<script type="text/javascript">
	var print = ()=>console.log("Tom");
	print();
	
	var add = (a,b)=> a+b;
	var result = add(1,1);
	console.log(result);
</script>

b、箭头函数是匿名函数,不能作为构造函数,不能使用new,如下例子:

<script type="text/javascript">
	let Student = () => {
	    console.log('箭头函数不能作为构造函数');
	}

	let student = new Student();//报错:TypeError: Student is not a constructor
</script>

c、箭头函数没有原型属性,如下例子:

<script type="text/javascript">
	var add = (a, b) => a + b;
	console.log(add.prototype); // undefined

	function print() {
		console.log("Tom");
	}
	console.log(print.prototype);
</script>

d、箭头函数不绑定arguments,而是使用...接收不定参数,如下例子:

代码1:
<script type="text/javascript">
	function print(params) {
		console.log(arguments);
	}
	print(1,2,3);
</script>

代码2:
<script type="text/javascript">
	let print=(params)=>console.log(arguments);//报错:ReferenceError: arguments is not defined
	print(1,2,3);
</script>

代码3:
<script type="text/javascript">
	let print=(...params)=>console.log(params);
	print(1,2,3);
</script>

e、箭头函数中this永远指向其上下文的this,普通函数中this指向调用它的对象如下代码:

<script type="text/javascript">
	var student = {
		age: 10,
		a: function() {
			console.log(this); // Object { age: 10, a: a(), b: b(), c: c() }
			console.log(this.age); // 10
		},
		b: () => {
			console.log(this); // Window
			console.log(this.age); // undefined
		},
		c: function() {
			return() => {
				console.log(this);//Object { age: 10, a: a(), b: b(), c: c() }
				console.log(this.age); //10
			}
		}
	}
	student.a();
	student.b();
	student.c()();
</script>

f、箭头函数不能当做Generator函数,不能使用yield关键字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值