Javascript 个人笔记(没有整理,很乱)

2019-06-02 15:55:34于海丽


this在js中表示紧贴着调用地点的,非prototype扩展的方法。

比如上面提到的

MyObj.prototype.sayBye = function () {

alert(”Bye” + this.name);

}

这个里面的this,紧贴的非prototype的函数是MyObj(再次注意,js中class是通过函数实现的),所以this.name就是实例变量。

但是在这种情况

MyObj.prototype.doSomething = function () {

todo(function () {

alert(this.name);

});

}

这个时候,this表示的是这个匿名函数

function () {

alert(this.name)

}

那么这里就会出现错误,如果想要这样使用,应该使用辅助变量。

MyObj.prototype.doSomething = function () {

var me = this; //把自己的reference赋值给变量me

todo (function () {

alert(me.name); //通过me来访问myObj实例

});

}