一、什么是对象
JavaScript 对象是拥有属性和方法的数据。在 JavaScript中,几乎所有的事物都是对象。
将一些函数与对象封装起来就是对象,所谓封装在语法层面就是,把函数和变量用英文大括号{}包起来。使用:key:value的形式,value可以是对象的值,也可以是对象的地址。
JS允许自定义对象,对象 是一组无序的相关属性和方法的集合
二、创建对象
1.Json模式创建对象(键值对)
键值对通常写法为 name : value (键与值以冒号分割)。键值对在 JavaScript 对象通常称为 对象属性。
var a={
name:"小米",
age:"25"
};
2.直接实例化对象,通过构造函数new Object()创建对象
var n = new Object();
n.name="小米";
n.age="25";
3.通过Object.create()函数创建
Object.create(proto,propetiesObject)
var cat = Object.create(null);
三、操作对象
访问对象
可以通过两种方式来访问对象:
语法:
- 对象.属性名
- 对象["属性名"]
添加属性
语法:
对象.属性名=新增值
修改属性
语法:
对象.属性名=新的值
删除属性
语法:
delete 对象.属性名
删除成功会返回true
检测对象的所有属性:
语法:
Object.keys()
检测对象中是否含有此属性:
- in运算符
左侧是属性名(字符串),右侧是对象。如果对象的自由属性或继承属性中包含这个属性就返回true
console.log("name" in xmphone);
- hasOwnproperty()方法
语法:
对象名. hasOwnproperty("属性名")
console.log(xmphone.hasOwnProperty("price"));
四、内存问题
变量来说,当一个变量的值赋给另一个变量,第二个变量值改变的时候并不会影响第一个,因为他们在栈当中都是独立存在的互不影响
对于对象来说,值会存储在堆当中,所以当赋值给另一个对象的时候,他们指向的是同一块内存地址,所以当一方发生改变时另一方也会受影响