您的位置:首页 > Web前端 > JavaScript

JavaScript---this

2015-10-03 21:51 489 查看
var x="全局对象";
var test={

tests:function test1(){

this.x="外部函数";

function  test2(){

alert(this.x);//此时的this指向的是全局对象,本来应该指向的是外部函数对象

};

test2();
}
};
test.tests();//结果为"全局对象",这是语言设计上的失误,用的时候需要注意

解决方法:

var x="全局对象";
var test={

tests:function test1(){

this.x="外部函数对象";
var that=this;//通过定义that变量,并赋值为this
function  test2(){

alert(that.x);//此时内部函数就可以通过that变量来访问外部函数中的x了
};

test2();
}
};
test.tests();//结果为"外部函数对象"


更多的this内容可以看这篇文章:

深入理解JavaScript中的this关键字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JavaScript