Home  >  Q&A  >  body text

javascript中this的指向问题

   name = "77";
    var obj = {
      name: "88",
      getName: function () {
        return this.name;
      } 
    };
    (obj.getName = obj.getName)();  //返回 77
    
    

高级程序设计183页解释说:因为这个赋值表达式的值是函数本身,所以this的值不能得到维持,结果就返回了全局变量。 不是很能理解,希望大神再给讲解一下

高洛峰高洛峰2652 days ago278

reply all(2)I'll reply

  • 高洛峰

    高洛峰2017-04-11 13:03:12

    这么理解,首先obj.getName = obj.getName,这个返回的是obj.getName对应的值,也就是内存里的那个函数,于是就可以将obj.getName = obj.getName视作全局函数。需要理解的是变量赋值的过程啊!
    关于作用域
    关于赋值

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 13:03:12

    你描述的和这个是等价的:

    想得到你想要的结果,你应该这么用:

    reply
    0
  • Cancelreply