对象是复杂数据类型, 是一组数据和功能的集合 .
定义对象的几种方式
1. 通过 new 构造函数创建实例
(1)传入参数 传入简单数据类型会输出该类型的实例 传入复杂数据类型直接输出
console.log(new Object('a')); // String {'a'}
console.log(new Object(1)); // Number {1}
console.log(new Object({ a: 1 })); // {a: 1}
console.log(new Object([0])); // [0]
(2)如果不传参数 默认返回对象的实例(空对象)
const obj = new Object() // {}
2. 字面量的方式
const obj1 = {} // {}
对象实例的属性
const obj = new Object();
obj.a = 'a';
obj.b = 1;
obj.c = [0, 1, 2];
obj.valueOf = () => {
return 'obj'
}
// hasOwnProperty 判断对象是否有某个属性
console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('num')); // false
// isPrototypeOf (obj) 判断当前对象是否是另一个对象的原型
const obj2 = {};
console.log(Object.prototype.isPrototypeOf(obj2)); // true
// propertyIsEnumerable 判断属性是否可被 for in 枚举
console.log(obj.propertyIsEnumerable('c')); // true
// toLocaleString 返回对象的字符串表示
console.log(obj2.toLocaleString()); // [object, object]
// toString 返回对象的字符串表示
console.log(obj2.toString()); // [object, object]
// valueOf 返回对象的原始值
console.log(obj2.valueOf() === obj2);
大家感兴趣的可以自己玩一玩