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

javascript之this

时间:2014-11-21 06:54:57      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   java   文件   on   div   log   cti   

  最近要用nodejs写点东西,发现对javascript不是很了解,那就开始学吧。

  javascript中的this感觉挺奇怪的,在某些情况下this代表的是当前对象,但在另外一些情况下,this又代表的是当前文件,那么究竟是为什么呢?

  javascript中相同的方法在不同的环境中,this所指向的对象时不同的,比如,方法在对象当中,作为对象的成员方法,那么里面的this指向的就是当前对象的实例,但如果,方法不是在对象的环境中,而是由另一个方法所调用,那么this所代表的就是当前的文件。(个人看法,只用于记忆)

  下面给出一点例子:

function classa(){
    this.name = ‘‘;
    this.printname = function(){
        console.log("hello "+this.name);
    }
}

  这一段代码中的this都是指向的当前对象。

  但如果把匿名函数里的方法重写下,改成如下形式:

this.printname = function(){
    var method = function(){
        console.log("hello "+ this.name);
    method();
    }
}

  这样子,里面的this代表的就是当前文件的对象,当然,打印出来的结果也是错误的。

javascript之this

标签:blog   io   ar   java   文件   on   div   log   cti   

原文地址:http://www.cnblogs.com/byheart/p/4111911.html

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