Javascript中的this——理解Javascript中的作用域【转载】
大家在使用Javascript的时候经常被this这个家伙搞得晕头转向的。对大多数有OOP开发经验的开发人员来说this是当前作用域中引用普通元素的标识符,但是在Javascript中它却显得古灵精怪的,因为它不是固定不变的,而是随着它的执行环境的改变而改变。在Javascript中this总是指向调用它所在方法的对象。
举一个简单的例子:
view plaincopy to clipboardprint?function test(){ alert(this); } var obj=function(){ var name='testObj'; } obj.objTest=test; obj.objTest2=function(){ test(); } test(); obj.objTest(); obj.objTest2(); 你猜会提示什么内容呢?你可以运行一下试试(:P);
既然this是根据调用其所在函数的对象的改变而改变的,那我们可不可以强制改变它的调用对象呢?答案是肯定的,以后的文章会介绍一下这部分内容,以及Javascript中不同类型的数据成员的实现方式,闭包等概念。
转载:http://www.dklogs.net/?p=253