1、概述
js的原生对象,所有的对象都继承自Object。
(1)、object本身的对象
Object.print = function (a){console.log(a)}
(2)、object的实例方法
Object.prototype.print = function (a){console.log(a)};
var obj = new Object();
obj.print() // Object
凡是在原型上的属性和方法都是可以被实例所使用的
2、Object()
本身是一个函数,可以当作工具类使用,将任意值转化为对象。常用于保证某个值一定是对象。如果参数是原始类型的值,Object将其转化为包装对象的实例。
var obj = Object(1);
obj instanceof Object // true
obj instanceof Number // true
var obj = Object('foo');
obj instanceof Object // true
obj instanceof String // true
var obj = Object(true);
obj instanceof Object // true
obj instanceof Boolean // true
如果Object是一个对象,则返回对象,可以用来判断变量是否为对象。
3、Object构造函数
object不仅可以当作工具函数,也可以当作构造函数。object构造函数的首要用途使用它来生成新的对象。
Object o = new Object();======>Object o1 = {};
4、Object的静态方法
4.1 Object.keys(),
可以查出有哪些key,不能查出有枚举的属性
Object.getOwnPropertyNames()
可以查出有哪些key,也能查出有枚举的属性
Object.keys(obj).length
计算属性的个数。
4.2 其他方法
(1)对象属性模型的相关方法
Object.getOwnPropertyDescriptor():获取某个属性的描述对象。
Object.defineProperty():通过描述对象,定义某个属性。
Object.defineProperties():通过描述对象,定义多个属性。
(2)控制对象状态的方法
Object.preventExtensions():防止对象扩展。
Object.isExtensible():判断对象是否可扩展。
Object.seal():禁止对象配置。
Object.isSealed():判断一个对象是否可配置。
Object.freeze():冻结一个对象。
Object.isFrozen():判断一个对象是否被冻结。
(3)原型链相关方法
Object.create():该方法可以指定原型对象和属性,返回一个新的对象。
Object.getPrototypeOf():获取对象的Prototype对象。
5、对象的实例方法
主要有六个
Object.prototype.valueOf():返回当前对象对应的值。
Object.prototype.toString():返回当前对象对应的字符串形式。
Object.prototype.toString.call(value) 可以在任意值上调用这个方法,帮助我们判断这个值的类型
Object.prototype.toLocaleString():返回当前对象对应的本地字符串形式。
Object.prototype.hasOwnProperty():判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。
Object.prototype.isPrototypeOf():判断当前对象是否为另一个对象的原型。
Object.prototype.propertyIsEnumerable():判断某个属性是否可枚举。