我刚开始学习JavaScript。在我看来
B = new A();
与
相同B = Object.create(A.prototype);
A.call(B);
我的理解是否正确?
答案 0 :(得分:2)
我的理解是否正确?
是的,这基本上是new
的作用。
但您可能需要考虑一些边缘情况 - 当A
确实返回一个对象时,new
调用将产生该值,而不是this
值。有关具体步骤,请参阅MDN或How does the "this" keyword work?。
此外,对于某些特殊构造函数(不是标准的用户声明函数),使用和不使用new
的调用之间的行为可能会有很大差异。内置构造函数(Array
等)是突出的例子。