// 对象的种类:
// 1.内建对象:ES
// 2.宿主对象:浏览器
// 3.自定义对象
// 对象的声明
// 1.构造函数
const obj1 = new Object();
// 2.对象字面量:可以直接初始化
// 格式: 属性名:属性值,
const obj2 = {
name: '张三',
age: 18,
sayHello: function(){
console.log('hello');
}
};
// 添加元素 对象.属性名 = 属性值
// 对象["属性名"] = 属性值
obj1.name = '李四';
obj2.gender = '男';
obj1.sayHello = function(){
console.log('hello');
};
obj1["hello"] = 'hello';
// 删除元素 delete 对象.属性名
delete obj1.name;
// 修改元素 对象.属性名 = 属性值
obj2.gender = '女';
// 查找元素 对象.属性名
console.log(obj2.name);
console.log(obj2.say); //没有的属性返回undefined,不报错
// 遍历元素 for...in
for(var n in obj2){
n 为属性名
obj2[n]为属性值
console.log(n,obj2[n]);
}
// 检查对象(原型)中是否有指定属性 "属性名" in 对象
console.log("name" in obj1);
// 属性名的引号可省略,若属性名特殊必须加引号
// 属性值可以是任意数据类型
// 引用数据类型,变量中保存的是地址
// 基本数据类型, 变量中保存的是值
const obj3 = obj2; // 传地址
console.log(obj2);
console.log(obj3);
obj2.name = 'baby';
console.log(obj2);
console.log(obj3);
// 回收对象 对象 = null
obj1 = null;