js对象中关于this关键字的作用

前两天在前端群看到群友问的一个问题,问题如下:

var Name = 'window';

var obj = {

  Name:'obj字符串',

  getName:function(){

   console.log(name); 

  }

}

obj.getName(); //输出window

问:为什么会输出window,而不是obj字符串?

这就会用到我们标题所提到的this了,this是JavaScript中的关键字,指的是当前的上下文对象,简单的说就是方法/属性的所有者,因为上面代码中,我们输出的就是全局变量Name,而不是对象里面私有的Name,所以会输出"window"。

我们把上面代码修改一下:

var Name = 'window';

var obj = {

  Name:'obj字符串',

  getName:function(){

   console.log(this.Name); 

  }

}

obj.getName(); //输出obj字符串

上面代码中,obj是一个对象,拥有Name属性与getName方法,在getName中this指向了所属的对象obj,所以就实现了输出"obj字符串";

posted @ 2016-09-06 16:28  前端学堂  阅读(620)  评论(0)    收藏  举报