码迷,mamicode.com
首页 > 其他好文 > 详细

this 不同情况指代的对象

时间:2015-09-27 22:39:53      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

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‘

this 不同情况指代的对象

标签:

原文地址:http://www.cnblogs.com/lastorder/p/4842797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!