1. 所有通过对象直接量创建的对象都具有同一个原型对象——Object.prototype;通过关键字new + 构造函数创建的对象的原型就是构造函数的prototype属性的值。
2. Object.prototype的原型对象是null。
3.不能通过同名自有属性覆盖只读的继承属性。
4. hasOwnProperty()方法用来检测给定的名字(变量名)是否是对象的自有属性。
5. propertyIsEnumerable()是hasOwnProperty()的增强版,只有检测到给定的变量是某个对象的自有属性,且该属性具有可枚举的特性时,才返回true。
6. in 操作符判断某个对象是否具有某属性(包含自有属性和继承属性)。
7. for/in循环可以遍历对象中所有可枚举的属性(包含自有属性和继承属性)。
8. Object.keys():返回一个数组,它由对象中所有可枚举的自有属性的名称组成。
9. Object.getOwnPropertyNames():返回一个数组,它由对象中所有自有属性的名称组成。
10. 数据属性的描述符对象的属性有value、writable、enumerable和configurable;存取器属性的描述符对象的属性有get、set、enumerable和configurable。其中writable、enumerable和configurable是布尔值,get和set是函数值。
11. Object.getOwnPropertyDescriptor(obj, p) 获取某个对象特定属性的属性描述符。对于继承和不存在的属性,它返回undefined.
12. Object.defineProperty(obj, p, propertyDescriptor) 让新建属性具有某种特性。obj:要修改的对象,p:要创建或修改的属性名,propertyDescriptor属性描述符对象。
13. Object.getPrototypeOf() 查看某个对象的原型。
14. isPrototypeOf() 判断某个对象是否为另一个对象的原型。
15. Object.isExtensible() 判断某对象是否具有可扩展性。
16 Object.preventExtensible()、Object.seal()、Object.freeze()
2. Object.prototype的原型对象是null。
3.不能通过同名自有属性覆盖只读的继承属性。
4. hasOwnProperty()方法用来检测给定的名字(变量名)是否是对象的自有属性。
5. propertyIsEnumerable()是hasOwnProperty()的增强版,只有检测到给定的变量是某个对象的自有属性,且该属性具有可枚举的特性时,才返回true。
6. in 操作符判断某个对象是否具有某属性(包含自有属性和继承属性)。
7. for/in循环可以遍历对象中所有可枚举的属性(包含自有属性和继承属性)。
8. Object.keys():返回一个数组,它由对象中所有可枚举的自有属性的名称组成。
9. Object.getOwnPropertyNames():返回一个数组,它由对象中所有自有属性的名称组成。
10. 数据属性的描述符对象的属性有value、writable、enumerable和configurable;存取器属性的描述符对象的属性有get、set、enumerable和configurable。其中writable、enumerable和configurable是布尔值,get和set是函数值。
11. Object.getOwnPropertyDescriptor(obj, p) 获取某个对象特定属性的属性描述符。对于继承和不存在的属性,它返回undefined.
12. Object.defineProperty(obj, p, propertyDescriptor) 让新建属性具有某种特性。obj:要修改的对象,p:要创建或修改的属性名,propertyDescriptor属性描述符对象。
13. Object.getPrototypeOf() 查看某个对象的原型。
14. isPrototypeOf() 判断某个对象是否为另一个对象的原型。
15. Object.isExtensible() 判断某对象是否具有可扩展性。
16 Object.preventExtensible()、Object.seal()、Object.freeze()