微信小程序中为什么用var that=this来绑定this上下文?

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

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

微信小程序中为什么用var that=this来绑定this上下文?

前言:在小型程序或JavaScript开发中,经常需要使用`var that=this;`。一开始我以为这是无用的(原因为未知),后来从面向对象的角度想明白了,下面简单解释一下我的理解,欢迎指正。

简单解释:在JavaScript中,`this`关键字指向当前执行环境的上下文。使用`var that=this;`是为了在函数外部保持对当前上下文(即`this`)的引用,防止在函数执行过程中`this`的值发生变化。

我的理解:在JavaScript中,当我们在对象内部调用函数时,如果不显式绑定`this`,那么`this`会指向函数所属的对象。但在某些情况下,我们希望在函数外部使用`this`,此时就需要用到`var that=this;`。

例如,在以下代码中:

javascriptfunction MyObject() { this.name='张三'; this.sayName=function() { console.log(this.name); }}

var myObj=new MyObject();myObj.sayName(); // 输出:张三

如果我们在`MyObject`的构造函数外部调用`sayName`方法,`this`将不再指向`MyObject`实例,而是指向全局对象(在浏览器环境中为`window`)。

阅读全文

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

微信小程序中为什么用var that=this来绑定this上下文?

前言:在小型程序或JavaScript开发中,经常需要使用`var that=this;`。一开始我以为这是无用的(原因为未知),后来从面向对象的角度想明白了,下面简单解释一下我的理解,欢迎指正。

简单解释:在JavaScript中,`this`关键字指向当前执行环境的上下文。使用`var that=this;`是为了在函数外部保持对当前上下文(即`this`)的引用,防止在函数执行过程中`this`的值发生变化。

我的理解:在JavaScript中,当我们在对象内部调用函数时,如果不显式绑定`this`,那么`this`会指向函数所属的对象。但在某些情况下,我们希望在函数外部使用`this`,此时就需要用到`var that=this;`。

例如,在以下代码中:

javascriptfunction MyObject() { this.name='张三'; this.sayName=function() { console.log(this.name); }}

var myObj=new MyObject();myObj.sayName(); // 输出:张三

如果我们在`MyObject`的构造函数外部调用`sayName`方法,`this`将不再指向`MyObject`实例,而是指向全局对象(在浏览器环境中为`window`)。

阅读全文