请问栈堆,和new之间的区别,还有概念是什么?
来源:1-1 javaScript中内置对象介绍
Jack崔
2019-04-17 20:20:25
请问栈堆,和new之间的区别,还有概念是什么?
1回答
同学你好!
(1)new是用来实例化一个对象的,
一般就是用来从构造器创建一个对象,可以内置构造器,如Date,Regexp,Array
也可以是自定义的函数 function foo(){} var fun = new foo()
通过new可以产生原对象的一个实例对象,而这个实例对象继承了原对象的属性和方法,它的过程是:
1)创建一个新对象;
2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ;
3) 执行构造函数中的代码(为这个新对象添加属性) ;
4) 返回新对象
(2)堆和栈的区别
1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。栈内存是用来存放在函数中定义的一些基本类型的变量和对象的引用变量
2、堆区(heap) : 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。堆内存是用来存放由new创建的对象和数组,即动态申请的内存都存放在堆内存
new创建对象,对象保存在堆里
如果帮助到了你 望采纳 祝学习愉快~
相似问题