The difference between this in arrow function and normal function

The difference between this in arrow function and normal function

var name = 'BigBear'
var me = {
  name: 'xiuyan',
  // 声明位置
  hello: function() {
      console.log(this.name)
  }
}

// 调用位置
me.hello() // BigBear
VM291:6 xiuyan
undefined
var name = 'BigBear'
var me = {
  name: 'xiuyan',
  // 声明位置
  hello: () => {
      console.log(this.name)
  }
}

// 调用位置
me.hello() // BigBear
VM469:6 BigBear
undefined
var a=3;var object = { 
    a:2, 
    run: function() {
         alert(this.a);//2
         alert(a);//3 
        } 
    }; 
object.run();
a:2表示object这个对象里"a"属性的值等于2。js里以函数为作用域划分,object里面的a并不是一个单独的变量,要访问它只能通过object.a。下面是类似的一个例子:

var a=3;function fun(){    var a=2;    function run(){
        alert(a);//2
    }
    run();
}
fun();

 

Guess you like

Origin blog.csdn.net/Handsome2013/article/details/114650062