箭头函数

提到箭头函数,不得不先回顾一下this

  1. 在全局执行上下文中(在任何函数体外部)this 都指代全局对象。//在浏览器中,全局对象是window,在node中是global

2. 普通的函数调用,函数的this指向全剧对象

3. 对象的方法调用,方法内的this指向该对象

4. 使用apply和call调用函数改变this

function fn(c,d){
    console.log(this.a + this.b + c + d)
}
var obj = {
    a:'a',
    b:'b',
    c:'c',
    d:'d'
};
fn.call(obj,2,3) //fn内的this指向了obj 'a' + 'b' + 2 + 3
fn.apply(obj,[2,3])//第一个参数是this指向的对象,第二个参数是一个数组,数组里的元素用做函数调用中的参数
复制代码
  1. 在定时器执行函数里

6. 在事件回调函数里,指向绑定事件的dom元素

7. 在构造函数里指向构造函数生成的实例

function Test(){
    this.x = 1;
}
var a = new Test()
复制代码

箭头函数的语法

  1. (参数1, 参数2, …, 参数N) => { 函数声明 }
var fn = (a,b)=>{return a+b}
fn(3,4)
复制代码
  1. (参数1, 参数2, …, 参数N) => 表达式(单一)
var fn = (a,b)=> console.log(a+b) //var fn=function(a,b){console.log(a+b)}
fn(3,4)

var fn = (a,b)=> a+b //var fn = function(a,b) {return a+b}
复制代码
  1. 当只有一个参数时,圆括号是可选的:

(单一参数) => {函数声明}javascript

单一参数 => {函数声明}html

// 没有参数的函数应该写成一对圆括号。 () => {函数声明}java

箭头函数不会建立本身的this,它只会从本身做用域的上一层继承thisnode

  1. 做为对象的方法被调用

2. 在事件中

参考连接 www.ruanyifeng.com/blog/2010/0…
相关文章
相关标签/搜索