码迷,mamicode.com
首页 > 编程语言 > 详细

【转】JavaScript里的this指针

时间:2014-12-07 12:25:46      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   sp   java   strong   

情形一:传入的参数是函数的别名,那么函数的this就是指向window

情形二:传入的参数是被new过的构造函数,那么this就是指向实例化的对象本身;

情形三:如果我们想把被传入的函数对象里this的指针指向外部字面量定义的对象,那么我们就是用apply和call

我们可以通过代码看出我的结论,代码如下:

<script type="text/javascript">
var name = "I am window";
var obj = {
    name:"sharpxiajun",
    job:"Software",
    ftn01:function(obj){
        obj.show();
    },
    ftn02:function(ftn){
        ftn();
    },
    ftn03:function(ftn){
        ftn.call(this);//Call和apply是将this指针指向方法的第一个参数
    }
};
function Person(name){
    this.name = name;
    this.show = function(){
        console.log("姓名:" + this.name);
        console.log(this);
    }
}
var p = new Person("Person");
obj.ftn01(p);
obj.ftn02(function(){
   console.log(this.name);
   console.log(this);
});
obj.ftn03(function(){
    console.log(this.name);
    console.log(this);
});
</script>

结果如下:

 bubuko.com,布布扣

最后再总结一下:

如果在javascript语言里没有通过new(包括对象字面量定义)、call和apply改变函数的this指针,函数的this指针都是指向window

【转】JavaScript里的this指针

标签:style   blog   http   io   ar   color   sp   java   strong   

原文地址:http://www.cnblogs.com/blog-leo/p/4149212.html

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