JavaScript中函数的this绑定有哪四种方式,大家能猜到吗?

2026-04-28 10:520阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2525个文字,预计阅读时间需要11分钟。

JavaScript中函数的this绑定有哪四种方式,大家能猜到吗?

JavaScript中的this和函数息息相关,今天,我就给大家详细地讲一讲:函数中的this到底指什么。

函数中的this,是一个非常核心的概念,很多初学者都会被它绕晕。其实,只要抓住核心,理解起来并不难。

首先,我们要明白,this的本质是一个指针,它指向的是函数的调用者。

举个例子,假设我们有一个函数:

javascriptfunction test() { console.log(this);}

如果我们直接调用这个函数:

javascripttest();

那么,this就会指向全局对象(在浏览器中是window对象,在Node.js中是global对象)。

但是,如果我们在某个对象上调用这个函数:

javascriptvar obj={ test: test};obj.test();

那么,this就会指向这个对象。

这就是this的基本原理。

当然,this还有一些特殊情况,比如箭头函数中的this。

箭头函数中的this,不会绑定到函数的调用者,而是继承自外围函数的上下文。

举个例子:

javascriptfunction outer() { var that=this; setTimeout(function() { console.log(this); // 指向window对象 console.log(that); // 指向outer函数的调用者 }, 1000);}outer();

在这个例子中,setTimeout中的函数是一个箭头函数,它的this指向了outer函数的调用者。

阅读全文
标签:四种

本文共计2525个文字,预计阅读时间需要11分钟。

JavaScript中函数的this绑定有哪四种方式,大家能猜到吗?

JavaScript中的this和函数息息相关,今天,我就给大家详细地讲一讲:函数中的this到底指什么。

函数中的this,是一个非常核心的概念,很多初学者都会被它绕晕。其实,只要抓住核心,理解起来并不难。

首先,我们要明白,this的本质是一个指针,它指向的是函数的调用者。

举个例子,假设我们有一个函数:

javascriptfunction test() { console.log(this);}

如果我们直接调用这个函数:

javascripttest();

那么,this就会指向全局对象(在浏览器中是window对象,在Node.js中是global对象)。

但是,如果我们在某个对象上调用这个函数:

javascriptvar obj={ test: test};obj.test();

那么,this就会指向这个对象。

这就是this的基本原理。

当然,this还有一些特殊情况,比如箭头函数中的this。

箭头函数中的this,不会绑定到函数的调用者,而是继承自外围函数的上下文。

举个例子:

javascriptfunction outer() { var that=this; setTimeout(function() { console.log(this); // 指向window对象 console.log(that); // 指向outer函数的调用者 }, 1000);}outer();

在这个例子中,setTimeout中的函数是一个箭头函数,它的this指向了outer函数的调用者。

阅读全文
标签:四种