03 JavaStrip Object 对象

Object 对象的构造函数

1、它定义了对象的用法;
2、所有对象类型数据都是它的实例;
3、所有内置对象的头目,所有对象都从Object.prototype继承方法和属性;

console.dir(Object);
console.dir({});
console.log({}.__proto__===Object.prototype);   //true

生成实例

1、对象初始化表达式 {} 推荐使用这种方法
2、new Object() 构造函数法;

  • 这种写法与对象初始化表达式的效果一样;
  • 区别在于如果参数是一个原始值,则返回该参数对应的包装对象;
console.dir([ ]);
console.dir(function(){});
console.dir(new String('luobing'));
            
console.log(new Object(12));

3、Object.create(Object.prototype)多用于继承的时候;

私有属性(构造函数属性)

1、name 构造函数的名字(可以用利用这个精确判断数据类型)
2、length 这个不知道什么意思(浏览器私有的)
3、prototype Object的原型对象
4、proto 浏览器部署的,是非标准的。用Object.getPrototypeOf()方法代替

私有方法(构造函数方法)

1、Object.getOwnPropertyDescriptor() ES5就有,ES6对其做了修改
2、Object.getOwnPropertyDescriptors() ES7新增
3、Object.defineProperty() ES5就有,ES6对其做了修改
4、Object.defineProperties() ES5就有,ES6对其做了修改
5、Object.getOwnPropertyNames() ES5就有,ES6对其做了修改
6、Object.getOwnPropertySymbols() ES6新增
7、Object.getPrototypeOf() ES5就有,ES6对其做了修改
8、Object.setPrototypeOf() ES6新增
9、Object.preventExtensions() ES5就有,ES6对其做了修改
10、Object.isExtensible() ES5就有,ES6对其做了修改
11、Object.seal()
12、Object.isSealed() ES5就有,ES6对其做了修改
13、Object.freeze() ES5就有,ES6对其做了修改
14、Object.isFrozen() ES5就有,ES6对其做了修改
15、Object.is() ES6新增
16、Object.assign() ES6新增
17、Object.create()
18、Object.keys()
19、Object.values() ES7新增
20、Object.entries() ES7新增

共享方法(实例方法,原型里的方法)

1、valueOf()
2、toString()
3、constructor()
4、hasOwnProperty()
5、isPrototypeOf()
6、propertyIsEnumerable()

你可能感兴趣的:(03 JavaStrip Object 对象)