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‘
时间: 2024-08-07 00:08:29