JavaScript中new与this

来源:互联网 发布:手机文件粉碎机软件 编辑:程序博客网 时间:2024/06/16 11:13
Js的面向对象机制是基于原型(prototype)的实现,算是工业领域里唯一的一家,感到奇怪也很正常。理解this,最好先理解javascript中new的含义。

new Constructor(); 这样的语句所做的工作是:
  1. 创建一个对象,对象的类型就是Object。
  2. 初始化对象内部的prototype,它的类型成为Constructor
  3. 执行构造函数,将构造函数作用域里的this指向这个对象。

this所指向的对象,除window外其余都是来自new语句新建的对象。而window也可以认为是页面里new出来的第一个对象,附带一个“全局的”作用域(this也在这里面,指向window)。但没人利用这个“特性“拿this访问window,只有调用构造函数忘记了new才会出现这种情况。


作者:fleuria
链接:https://www.zhihu.com/question/19636194/answer/12612763
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
0 0
原创粉丝点击