当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

javascript this指向

发表于: 2015-11-13   作者:互联网   来源:转载   浏览:
摘要: this对象是什么:   this对象是与运行时函数执行的上下文绑定的。这句话其实已经很好的解释了this对象,为我们确定this指明了方向!但是需要注意的是:由于javascript具有动态性(解释执行,当然也有简单的预编译过程),this对象只有运行时才能够确定! 确定this对象的方法: 当函数为全局函数时,this指向window;当函数作为某个对象的方法被调用时,this指向那个对

this对象是什么:

  this对象是与运行时函数执行的上下文绑定的。这句话其实已经很好的解释了this对象,为我们确定this指明了方向!但是需要注意的是:由于javascript具有动态性(解释执行,当然也有简单的预编译过程),this对象只有运行时才能够确定!

确定this对象的方法:

当函数为全局函数时,this指向window;当函数作为某个对象的方法被调用时,this指向那个对象。特别需要注意的是,在非严格模式下匿名函数的执行上下文具有全局性,其中的this指向window,而严格模式this为空。

案例:

看不懂没有关系,下面讲解一下实例:

1.先来点简单的

/*全局当中的this*/

console.log(this); //window

/*全局函数中的this*/

function fn(){  

    console.log(this); //window

}

fn();

/*对象当中方法的this*/

var obj = {

    name : '复读机',

    getThis : function(){

        console.log(this); 

    }

}
obj.getThis()//obj 此函数作为obj的方法被调用
var getThis1 = obj.getThis;
getThis1();//window 此函数不是作为obj方法被调用,可以看做是全局函数

2.闭包与this

/*闭包与this*/

var obj = {

    name : '复读机',

    getThis : function(){

        return function(){

            console.log(this); //window

        }

    }

}

obj.getThis()();

还是简单解释一下:在这个例子中this的指向为运行时this所在的执行上下文,很明显this的上下文为一个匿名函数,这个匿名函数不是属于obj的方法,它具有全局性,所以this指向window

3.类与this

/*类与this*/

function CreateDog(name,age){

    this.name = name;

    this.age = age;

    console.log(this); //指向实例

}

CreateDog.prototype.sayThis = function(){

    console.log(this); //指向实例

}

var dog = new CreateDog("xiaohei",1);

dog.sayThis();

很多人误认为this指向类,然而this指向实例,这一点是毋庸置疑滴!

最后,关于this的有很多,需要在实践中慢慢体会!

 

javascript this指向

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号