javascript的this指向

描述

在JavaScript中,this关键字指向当前执行上下文的对象。它通常在对象方法中使用,表示该方法所属的对象。

在函数中使用this,它的值取决于函数是如何被调用的。有以下几种情况:

  1. 普通函数调用:在普通函数中,this指向全局对象(在浏览器中是window)。
function func() {
  console.log(this); // 输出全局对象
}
func();
  1. 方法调用:在对象的方法中使用this,它指向调用该方法的对象。
var obj = {
  name: 'John',
  sayHello: function() {
    console.log('Hello, ' + this.name); // 输出 Hello, John
  }
};
obj.sayHello();
  1. 构造函数调用:在构造函数中,this指向新创建的对象实例。
function Person(name) {
  this.name = name;
  this.age = 0;
}
Person.prototype.sayHello = function() {
  console.log('Hello, ' + this.name); // 输出 Hello, John
};
var john = new Person('John');
john.sayHello();
  1. 箭头函数:箭头函数不绑定自己的this值,它继承自父执行上下文。这意味着箭头函数中的this值取决于它被定义时的上下文,而不是它被调用时的上下文。例如:
var obj = {
  name: 'John',
  sayHello: () = > {
    console.log('Hello, ' + this.name); // 输出 undefined
  }
};
obj.sayHello();

在这个例子中,箭头函数没有自己的this值,所以它继承了父执行上下文的this值,即obj对象。因此,在箭头函数中使用this,它指向的是obj对象,而不是箭头函数本身。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分