Object对象是Javascript原生的对象,在Javascript中其他对象都继承自Object对象,都是Object对象的实例。Object对象的所有方法和属性均可用于所有其他对象
创建Object对象实例的方法
new构造函数法
var person = new Object();
person.name = 'jeck';
person.age = 28;
这种方式使用new关键字,接着跟上Object构造函数,再来给对象实例动态添加上不同的属性。
对象字面量
对象字面量很好理解,使用key/value的键值对形式直接创建对象,简洁方便。
var person = {
name:'jeck',
age:28
}
这种方式直接通过花括号将对象的属性包起来,使用key/value的方式创建对象属性,每个属性之间用逗号隔开。如果是最后一个属性,后面就不要加逗号。
Object()方法
Object
构造函数可以不加 new
当变通函数执行,这样可以将任意值做为参数转为对象,通常用于保证某一值必须是一个对象,如果参数为空(null 或 undefined),Object()返回一个空对象。
var obj = Object();
// 等同于
var obj = Object(undefined);
var obj = Object(null);
obj instanceof Object // true
如果参数为原始数据类型,,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()方法判断是不是一个javascript 对象
function isObject(value){
return value == Object(value);//相等value就是一个对象
}
Object对象的静态方法
所谓“静态方法”,是指部署在Object对象自身的方法。
函数 | 描述 |
---|---|
Object.assign 函数 【详情】 | 将来自一个或多个源对象中的值复制到一个目标对象。 |
Object.create 函数 【详情】 | 创建具有指定原型并可选择包含指定属性的对象。 |
Object.defineProperties 函数 【详情】 | 将一个或多个属性添加到对象,和/或修改现有属性的特性。 |
Object.defineProperty 函数 【详情】 | 将属性添加到对象,或修改现有属性的特性。 |
Object.freeze 函数 【详情】 | 防止修改现有属性的特性和值,并防止添加新属性。 |
Object.getOwnPropertyDescriptor 函数 | 返回数据属性或访问器属性的定义。 |
Object.getOwnPropertyNames 函数 | 返回对象属性及方法的名称。 |
Object.getOwnPropertySymbols 函数 | 返回对象的符号属性。 |
Object.getPrototypeOf 函数 | 返回对象的原型。 |
Object.is 函数 | 返回一个值,该值指示两个值是否相同。 |
Object.isExtensible 函数 【详情】 | 返回指示是否可将新属性添加到对象的值。 |
Object.isFrozen 函数 【详情】 | 如果无法在对象中修改现有属性的特性和值,并且无法将新属性添加到对象,则返回 true。 |
Object.isSealed 函数 【详情】 | 如果无法在对象中修改现有属性特性,并且无法将新属性添加到对象,则返回 true。 |
Object.keys 函数 | 返回对象的可枚举属性和方法的名称。 |
Object.preventExtensions 函数 【详情】 | 防止向对象添加新属性。 |
Object.seal 函数 【详情】 | 防止修改现有属性的特性,并防止添加新属性。 |
Object.setPrototypeOf 函数 | 设置对象的原型。 |
Object对象实例的方法
方法 | 描述 |
---|---|
hasOwnProperty 方法 | 返回一个布尔值,该值指示某个对象是否具有指定名称的属性。 |
isPrototypeOf 方法 | 返回一个布尔值,该值指示某个对象是否存在于另一个对象的原型层次结构中。 |
propertyIsEnumerable 方法 | 返回一个布尔值,该值指示指定属性是否为对象的一部分且是否可枚举。 |
toLocaleString 方法 | 返回基于当前区域设置转换为字符串的对象。 |
toString 方法 | 返回对象的字符串表示形式。 |
valueOf 方法 | 返回指定对象的基元值。 |