js 匿名函数与箭头函数
时间: 2023-12-08 08:06:55 浏览: 40
js中的匿名函数和箭头函数有一些区别。匿名函数是指在函数定义时没有给函数命名的一种函数。它可以通过将函数赋值给一个变量来使用。而箭头函数是ES6中新增的一种函数定义方式,它的语法更加简洁,可以用来替代匿名函数。
匿名函数不能够提前调用,也就是说在函数声明之后才能调用它。而箭头函数没有这个限制,可以在定义之前或之后都能正常调用。
另外,箭头函数比匿名函数更加简化,当箭头函数只包含一个表达式时,可以省略花括号和return关键字。而匿名函数中的返回值需要通过return语句来指定。
举个例子:
```javascript
// 匿名函数
var fn = function(){
console.log("hello js");
}
fn(); // 输出 hello js
// 箭头函数
var arrowFn = () => {
console.log("hello arrow function");
}
arrowFn(); // 输出 hello arrow function
```
相关问题
js匿名函数的this指向
在JavaScript中,匿名函数的this指向取决于函数的执行环境。根据引用[1]中的总结,可以得出以下结论:
1. 当匿名函数被直接调用时,其中的this指针永远指向window对象。
2. 如果匿名函数是作为对象的方法调用的,this指向调用该函数的对象。
3. 如果匿名函数通过new关键字创建一个新的对象,this指向新建出来的对象。
4. 在匿名函数内部,可以使用变量that或者箭头函数来保存外部函数的this指向,并在需要时使用该变量。
根据引用中的说明,我们可以看到在复杂的例子中,匿名函数的this指向是根据执行环境来决定的。例如,在例子1中,匿名函数func是直接调用的,所以this指向window对象,因此返回了全局变量name的值"the window"。而在例子2和例子3中,匿名函数func是作为对象的方法调用的,所以this指向了调用该函数的对象,分别返回了"my object"和"obj name"。
综上所述,匿名函数的this指向取决于函数的执行环境,包括直接调用、作为对象方法调用和通过new关键字创建对象。
js箭头函数与普通函数有什么区别
箭头函数和普通函数在语法和功能上有一些区别。首先,箭头函数是匿名函数的简化形式,可以省略函数定义的一些部分。其次,箭头函数和普通函数在使用时有一些差异。
1. 箭头函数不能作为构造函数使用,而普通函数可以被实例化为对象。
2. 箭头函数没有自己的this关键字,它的this是继承自上下文环境。而普通函数的this关键字指向调用函数的对象或undefined(在严格模式下)。
3. 箭头函数没有arguments关键字,它不具备普通函数的参数对象。而普通函数可以通过arguments访问所有传入的参数。
4. 箭头函数不能使用super关键字,它无法访问其父类的属性或方法。而普通函数可以使用super关键字来引用父类的属性或方法。
5. 箭头函数不能被用作Generator函数,它不能使用yield关键字。而普通函数可以被用作Generator函数,并且可以使用yield关键字返回多个值。
综上所述,箭头函数和普通函数在语法和功能上有一些差异,主要体现在构造函数的使用、this关键字的指向、参数对象的访问、super关键字的使用和Generator函数的支持等方面。