web前端开发:js中object储存
一、什么是object
我们先来看object是如何进行定义的
"无序属性的集合,其属性可以包括基本值、object或者函数",object是一组没有特定顺序的的值。object的每个属性或方法都有一个名字,每个名字都映射到一个值。
简单来理解object就是由属性和方法来组成的
二、面向object的特点
封装
对于一些功能相同或者相似的代码,我们可以放到一个函数中去,多次用到此功能时,我们只需要调用即可,无需多次重写。
在这里我们可以理解为创造object的几种模式:单例模式,工厂模式,构造函数模式,原型模式等。
继承 子类可以继承父类的属性和方法
多态(重载和重写)
重载:严格意义上说js中没有重载的功能,不过我们可以通过判断函数的参数的不同来实现不同的功能来模拟重载。
重写:子类可以改写父类的属性和方法
三、在js中与object有关系的内存区域有四部分组成:
堆空间, 栈空间,数据空间,代码空间。
1. 栈空间
存放的数据大小比较小,一般固定大小的信息适合存放在该空间,例 如整型、boolean、对象的引用(名称)。
2. 堆空间
该空间存储的数据比较多,空间较大,一般数据长度不固定的信息在该空间存放,例如: string、Array、对象实体。
3. 数据空间
该空间存放常量、类的静态属性。
4. 代码空间
存放函数体、方法体代码。
简单类型和复杂类型的区别
基本类型又叫做值类型,复杂类型又叫做引用类型
值类型:简单数据类型,基本数据类型,在存储时,变量中存储的是值本身,因此叫做值类型。
引用类型:复杂数据类型,在存储是,变量中存储的仅仅是地址(引用),因此叫做引用数据类型。
堆和栈
堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
2、堆(操作系统): 存储复杂类型(object),一般由程序员分配释放, 若程序员不释放,由垃圾回收机制回收。
注意:JavaScript中没有堆和栈的概念
基本类型在内存中的存储
复杂类型在内存中的存储
- 点赞
- 收藏
- 关注作者
评论(0)