我正在学习构造函数,我遇到了new
关键字。
var obj = new myContructor();
我了解到它创建了一个新对象,将其原型设置为constructor.prototype
,根据this
关键字设置其属性,最后返回该对象。
现在,我很困惑它在哪里创建新对象,如内部内存或易失性的地方。
当它说RETURNS那个对象时,它是什么意思,它在var obj的位置创建一个新对象的副本,或者它将obj引用到创建新对象的任何地方?
答案 0 :(得分:2)
内存或易失性的地方
是的,当然。就像程序中的任何其他数据一样。
我们的意思是说它退回那个对象
您正在进行函数调用。函数调用具有返回值。该对象是该函数调用的返回值。
它在var obj
的位置创建新对象的副本
它在函数中创建它,然后它返回对它的引用(就像任何其他对象一样),并且该引用存储在变量中,因为你使用了赋值。
答案 1 :(得分:1)
Javascript中幕后有很多内容;事物不断被创建 in memory ,你无权访问。只要您在编写Javascript代码时关注此问题:
new
创建对象并完成所有原型设置myConstructor()
,并将函数内的this
设置为该对象myContructor
以对象作为上下文调用myConstructor
后,对象将被分配给变量obj
,这是所有这一切的结果关于myConstructor
可以返回什么以及它如何影响结果,有一些警告,但为简单起见,我们将忽略它。基本事件链是new
创建对象→myConstructor
将该对象视为this
→obj
“接收”此对象作为new
的返回值。< / p>
当然,所有这些对象的创建并将其传递到不同的地方都是由Javascript引擎完成的,并且需要在内存中的某个位置内部存储对象。