标签:
1 全局环境中的this指向全局对象
this.a = 10;
alert(a);//10
b = 20;
alert(this.b);//20
var c = 30;
alert(this.c);//30
2 对象内部函数的this指向调用函数的当前对象
var a = 10;
var bar = {
a: 20,
test: function(){
alert(this.a);
}
}
bar.test();//20
3 全局环境函数的this指向全局对象
var a = 10;
function foo(){
alert(this.a);
}
foo();//10
4 匿名函数中的this指向全局对象
var a = 10;
var foo = {
a: 20,
fn: (function(){
alert(this.a);
})()
}
foo.fn//10
5 setInterval和setTimeout定时器中的this指向全局对象
var a = 10;
var oTimer1 = setInterval(function(){
var a = 20;
alert(this.a);//10
clearInterval(oTimer1);
},100);
6 eval中的this指向调用上下文中的this
(function(){
eval("alert(this)");//[object Window]
})();
function Foo(){
this.bar = function(){
eval("alert(this)");//[object Object]
}
}
var foo = new Foo();
foo.bar();
7 构造函数中的this指向构造出的新对象
function Person(name,age){
this.name = name;
this.age = age;
this.sayName = function(){
alert(this.name);
}
}
var p1 = new Person(‘lily‘,‘20‘);
p1.sayName();//‘lily‘
标签:
原文地址:http://www.cnblogs.com/lastorder/p/4842797.html