首页 > 其他 > 详细

this 不同情况指代的对象

时间:2015-09-27 22:38:29      阅读:368      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!