ES6 function函数和箭头函数区别

1.写法不一样

//function
function fn(a,b){
return a+b
}
//arrow function
var foo = (a,b)=>{
return a+b
}

  

2.this的指向,function中的this可变(window,内部),箭头函数固定不变指向window

function foo(){
console.log(this)
}
var obj = {aa:foo}
foo() //window
obj.aa()//obj

var foo = ()=>{
console.log(this)
}
var obj = {aa:foo}
foo()//window
obj.aa()//window

  

3.构造函数

function Person(name,age){
this.name =name
this.age = age
}
var lenhart = new Person(lenhart,25)
console.log(lenhart) //成功

var Person = (name,age)=>{
this.name = name
this.age=age
}
var lenhart = new Person(‘lenhart‘,25) //Uncaught TypeError: Person is not a constructor

  

4.变量提升

foo()
function foo(){
console.log(‘123456‘)
}
arrowFn()//Uncaught TypeError: arrowFn is not a constructor
var arrowFn=()=>{
console.log(‘123456‘)
}

  

原文地址:https://www.cnblogs.com/fm060/p/12305473.html

时间: 2024-08-29 09:46:31

ES6 function函数和箭头函数区别的相关文章

论普通函数和箭头函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱.就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和箭头函数的区别: 箭头函数的this指向规则: 1. 箭头函数没有prototype(原型),所以箭头函数本身没有this let a = () =>{}; console.log(a.prototype); // undefined 2. 箭头函数的this指向在定义的时候继承自外层第一个普通函数的this

常规函数和箭头函数的this绑定问题

核心要点 function(){} 和 () => {} 的最大区别在于前者会在运行时绑定this对象,后者不会 由于function(){}在运行时在内部自动绑定this对象,则不会访问外部作用域this 由于() => {}不能自动绑定this对象,则只能访问外部作用域this 如果要使用动态绑定的this,则使用function(){} 如果要使用外部作用域的this,则使用() => {} 估计ES6就是因为function(){}总是自动绑定this造成嵌套function时需

e_函数_箭头函数

函数 箭头函数 // 有有一个变量且直接return的 var f = v => v; // 等同于 var f = function (v) { return v; }; // 不需要参数或需要多个参数 不直接return的 var sum = (num1, num2) => { let k=num1 + num2; return k; }; // 等同于 var sum = function(num1, num2) { let k=num1 + num2; return k; }; 箭头函

区别ES3ES5和ES6this的指向问题。区分普通函数和箭头函数中this的指向问题

ES3 ES5this的指向问题 this指的是该函数被调用的对象 var foo = function () { this.a = 'a', this.b = 'b', this.c = { a: 'new a', b: function () { //new a 此时this指的是该函数被调用的对象 return this.a; } } } console.log(new foo().c.b()); //new a ES6的箭头函数 箭头函数的this指的是定义时this的指向,b在定义时,

ES6深入浅出-2 新版函数:箭头函数 2 视频-2.视频 箭头函数杂谈

杂谈coffeescript 箭头函数抄的是谁? coffeescript 双箭头的形式 箭头函数简洁的语法 数组内每一个值都平方一下 Map的写法 箭头函数的写法 平方后,每一个值再加1 number变量改成用n,更简化 瘦箭头 瘦箭头其实就是function 判断response里面的对象是否存在的情况 coffescript里面的解决方法,直接用问号解决了. vue中说不要使用箭头函数? 因为vue中依赖this 用到了箭头函数就别用this function()简写的写法,onClick

ES6深入浅出-2 新版函数:箭头函数 2 视频-1.视频 箭头函数

ES3里面的写法 匿名函数是用不了的 还是需要给他赋值 选中的这一部分叫做匿名函数 等于号叫做赋值 let xxx叫做声明 所以说这个地方是三个语法,首先声明一个匿名函数,然后声明一个xxx变量,最后把这个匿名函数赋值给这个变量xxx es6箭头函数 箭头函数只能做赋值,不能做声明 这是一个标准的箭头函数 写法2,只有一个参数 如果只有一个函数,可以不用写括号 调用一下做测试 写法3,函数体只有一句话的情况 如果函数体只有一句话,那么是可以不写花括号的. 假设我们的函数体只有return p1+

JS函数和箭头函数

函数的声明和调用 函数定义可以使用"function"关键字,代码函数头和函数体组成,函数头可以由函数名和参数列表组成,语法格式:函数名(参数列表){函数体}.如 function name(arg){console.log(arg)} 调用 name(arg) 当函数没有函数名的时候称匿名函数 function(arg){console.log(arg)} 通常需要赋值给一个变量,不然报错 var name=function(arg) { console.log(arg) } 调用

6 JavaScript函数&内置构造&函数提升&函数对象&箭头函数&函数参数&参数的值传递与对象传递

JavaScript函数:使用关键字function定义,也可以使用内置的JavaScript函数构造器定义 匿名函数: 函数表达式可以存储在变量中,并且该变量也可以作为函数使用. 实际上是匿名函数. <body> <p>函数存储在变量后,变量可作为函数使用:</p> <p id="demo"></p> <script> var x = function(a,b){return a+b; }; document.g

es6 入门 变量,箭头函数,变量字符串拼接

ES6里面,变量表示方法不再只有var 一种,而变成了三种. var , let, const let 和var 的区别呢,是无法定义let 两次,但是内容还是可以换的. 这避免了不小心覆盖了变量的可能性. let oop = '00p' oop=23; console.log(oop); //23 ____________________________ let oop = '00p' let oop=23; console.log(oop); // SyntaxError: Identifi