微信小程序中为何采用var that=this来保持this的引用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计795个文字,预计阅读时间需要4分钟。
前言:在小程序或JS开发中,经常需要使用var that=this;。一开始我以为这是无用功(原以为我的无知),后来从面向对象的角度一思考就明白了。下面简单解释一下我的理解,欢迎指正。
在JavaScript中,函数中的this关键字指向的是函数的调用者。在普通函数中,this通常指向全局对象(在浏览器中是window对象)。而在对象方法中,this指向调用该方法的对象实例。
在开发中,我们经常需要访问当前对象实例的属性和方法,这时就需要用到var that=this;。它的作用是将当前对象实例的引用赋值给一个变量that,这样就可以在函数内部通过that来访问当前对象实例。
例如:
javascriptfunction Person(name) { this.name=name; this.sayName=function() { console.log(this.name); };}
var person=new Person('张三');var that=this;person.sayName=function() { console.log(that.name);};
person.sayName(); // 输出:张三
在这个例子中,我们将Person对象的sayName方法修改为使用that来访问name属性,这样无论何时调用sayName方法,都能正确输出name属性的值。
总之,var that=this;在JavaScript开发中非常有用,可以帮助我们更好地处理对象实例的引用。
本文共计795个文字,预计阅读时间需要4分钟。
前言:在小程序或JS开发中,经常需要使用var that=this;。一开始我以为这是无用功(原以为我的无知),后来从面向对象的角度一思考就明白了。下面简单解释一下我的理解,欢迎指正。
在JavaScript中,函数中的this关键字指向的是函数的调用者。在普通函数中,this通常指向全局对象(在浏览器中是window对象)。而在对象方法中,this指向调用该方法的对象实例。
在开发中,我们经常需要访问当前对象实例的属性和方法,这时就需要用到var that=this;。它的作用是将当前对象实例的引用赋值给一个变量that,这样就可以在函数内部通过that来访问当前对象实例。
例如:
javascriptfunction Person(name) { this.name=name; this.sayName=function() { console.log(this.name); };}
var person=new Person('张三');var that=this;person.sayName=function() { console.log(that.name);};
person.sayName(); // 输出:张三
在这个例子中,我们将Person对象的sayName方法修改为使用that来访问name属性,这样无论何时调用sayName方法,都能正确输出name属性的值。
总之,var that=this;在JavaScript开发中非常有用,可以帮助我们更好地处理对象实例的引用。

