对象的简介
1.内建对象
- 由ES标准定义的对象,在任何ES标准中都可以使用
- 比如:Math String Number Boolean Function Object
2.宿主对象
- 由JS运行环境提供的对象,目前是主要由浏览器提供的对象。比如 BOM DOM
3.自定义对象
- 由开发人员自己创建的对象。
对象就相当于一个塑料袋,里面装着属性和值构成一个整体
对象的基本操作
1.创建对象
- 使用new关键字调用的函数,是构造函数constructor
- 构造函数是专门用来创建对象的函数
var obj = new object();
2.在对象中添加属性和读取属性
var obj = new object();
obj.name = "George";
obj.gender = "男";
obj.age = "23"
console.log(obj.name); //读取
3.修改和删除
obj.name = "tom"; //对象.属性名 = 新值
delete obj.name; //删除
变量中的属性名和属性值
1.变量名
- 变量名可以起乱七八糟的东西。如果使用特殊的属性名不能用 . 的方式来操作,需要另一种写法:对象[属性名] = 属性值
- 读取也需要这种方式。使用 [ ] 这种形式操作属性更加的灵活。[ ] 中也可以传递一个变量,这样变量值是多少就可以读取那个属性。
obj["123"] = 789;
obj["nihao"] = "你好";
var n = "nihao";
console.log(obj["123"]);
console.log(obj[n]);
2.属性值
- JS对象的属性值可以是任意数据类型
var obj = new object();
obj.test = true;
obj.test = 123;
obj.test = "垃圾";
- 可以设置对象为另一个对象的属性(套娃)
var obj2 = new Object();
obj2.name = "叔本华";
//将obj2设置为obj属性
obj.test = obj2;
console.log(obj.test); //打印obj2
console.log(obj.test.name);
基本数据类型和引用数据类型
- 基本数据类型 :String Number Boolean Null Undefined
var a = 132;
var b = a;
a++;
console.log("a = "+a); //132
console.log("b = "+b); //133
理解:基本数据类型保存在栈内存中,一个变量名对应一个值。此时a++只改变a。对b没任何影响
- 引用数据类型 Object
var obj = new Object();
obj.name = "海明威";
var obj2 = obj;
obj.name = "尼采";
console.log(obj.name); //尼采
console.log(obj2.name); //尼采
理解: 引用数据类型在栈内存中保存的是堆内存地址,当堆内存地址中的变量产生改变,所有指针指向此地址的变量值都会发生改变。
- 将对象的值设为null,即为断开连接。断开连接不影响其他指向次内存地址的参数。
对象字面量 :在创建对象的同时,可以赋值里面的属性
var obj = {
}; //此声明方式等于 var obj = new Object();
var obj2 = {
name:"猪八戒",
age:25,
gender:"男",
test:{
name:"沙和尚"}
};
可以声明属性,也可以声明内部对象。