obj中方法调用的解释:obj.showName();是因为obj调用了showName这个函数,所以this指的就是obj?

关于obj中方法调用的解释:obj.showName();是因为obj调用了showName这个函数,所以this指的就是obj?
这个讲的有点逻辑不通吧,obj.showName本来就是指代的function(){ //方法alert(this.name)};不存在obj调用的情况吧?

var obj = new Object(); 
obj.name = '小明';  //属性
obj.showName = function(){  //方法
    alert(this.name);
};
obj.showName();
 
阅读 3.5k
2 个回答

关于this的指向问题,如果函数是独立调用的,则this指向全局对象。如果函数是被一个对象拥有,则指向这个对象。所以是obj

关于this的指向,建议你多搜一下相关的文章看一下,一般情况下,this指向caller,即使相同的函数调用方式不同,this也不同,如:

function foo (){
    console.log(this);
}
foo(); //全局
foo===foo.prototype.constructor //true
foo.prototype.constructor(); //foo.prototype
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题