js构造函数模式的问题

QQ图片20200102222959.png

Person()中的,三个属性的this到底是window,还是什么?

阅读 2.8k
3 个回答

分两种情况:

  • Person 函数作为正常函数直接调用, Person 函数里面的 this 指向 window,添加的属性和方法也会添加到全局
  • 使用构造函数 new Person() 的方式调用,this 就指向创建出来的对象,new 关键字的作用就是创建一个对象并将 this 指向创建的对象

使用 new Person(...) 调用 Person 的时候,this 是正在被创建的对象。

明白一个new操作符干了写什么;

    1.新建了一个对象;
    2.将构造函数的作用域赋给这个新对象(因此this就指向了这个新对象);
    3.执行构造函数中的代码(this.name = name ......);
    4.返回新对象(如果没有return语句,返回this)

所以这里this指向新创建的这个对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题