在JavaScript中,function既可以作为一般的函数使用,也是通过new创建对象的,因此,function中的this指针指向的对象就变得非常复杂:
如果function是被作为一般的函数调用,则this指针指向的是函数的调用对象;
如果function是作为对象被使用,则this指针指向的是对象的本身;
Crap = {
aaa:"dddddddddddddddddddddddddddd",
ok:function(){
this.aaa = "vvvvvvvv";
alert("OK"+this.aaa);
}
};
这个例子中:crap中的aaa是“ddddd...”;
ok中的 的this.aaa = "vvvvvv";
如果Crap.ok();将输出:OKvvvvvvv,因为ok中使用了this.aaa = "vvvv",所以this指向了ok自身,如果ok中没有指定aaa,或者定义为 var aaa = "vvvvv";那么输出将会是:OKddddddddddddd..这里的this将指向Crap。