js new 原理
2023-12-13 03:27:41
new 调用函数时,该函数将被用作构造函数
类只能用 new 运算符实例化
不使用 new 调用一个类将抛出 TypeError。
过程
new Foo(…) 执行时:
-
创建一个空的简单 JavaScript 对象。
为方便起见,我们称之为newInstance
。 -
如果构造函数的 prototype 属性是一个对象,则将
newInstance
的[[Prototype]]
指向构造函数的这个属性;
否则newInstance
将保持为一个普通对象,其[[Prototype]]
为Object.prototype
。备注:通过构造函数创建的所有实例都可以访问添加到构造函数 prototype 属性中的属性/对象。
-
使用给定参数执行构造函数,并将
newInstance
绑定为this
的上下文,
在构造函数中的所有 this 引用都指向 newInstance。 -
如果构造函数返回 引用类型,则该返回值作为 new 表达式的结果。
否则返回构建好的newInstance
。
文章来源:https://blog.csdn.net/I_fole_you/article/details/134894614
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!