function MadDog() {
this.wow=function(){
....
} this.yelp = function() {
var self = this;//这里不明白
setInterval(function() {
self.wow();
}, 500);
}
}想请问下为什么要把this给self再调用方法而不是直接用this调用呢?
this.wow=function(){
....
} this.yelp = function() {
var self = this;//这里不明白
setInterval(function() {
self.wow();
}, 500);
}
}想请问下为什么要把this给self再调用方法而不是直接用this调用呢?
举例:
function MadDog() {
this.wow=function(){
....
} this.yelp = function() { //假设现在的this是指向一个button按钮对象
var self = this;//如果这里不保存那么到setInterval里以后可能就变成其他对象,可能是文本框或者其他
setInterval(function() {
self.wow(); //这里如果直接用this,执行环境就变成this.wow函数里的当前执行对象了。而不是一开始的button对象
}, 500);
}
}
为了保证激发的是我们想要的那个对象,所以做了我们保存了var self = this;也就是那个button对象!
function MadDog() {
this.wow=function(){
....
} this.yelp = function() {
var self = this;//这里不明白
setInterval(function() {
self.wow();
this;//这里的this指的是window对象
}, 500);
}
}
Javascript中的this指针介绍
Javascript中需要留意的”this”指针陷阱