标签: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代表的就是当前文件的对象,当然,打印出来的结果也是错误的。
标签:blog io ar java 文件 on div log cti
原文地址:http://www.cnblogs.com/byheart/p/4111911.html