Object 对象
1.概述
Object对象本身的方法
Object.print = function (o) { console.log(o) };
Object的实例方法
Object.prototype.print = function () {
console.log(this);
};
var obj = new Object();
obj.print()
2.Object()
var obj = Object();
var obj = Object(undefined);
var obj = Object(null);
obj instanceof Object
3.Object 构造函数
var obj = new Object();
var o1 = {a: 1};
var o2 = new Object(o1);
o1 === o2
var obj = new Object(123);
obj instanceof Number
4.Object 的静态方法
4.1 Object.keys(),Object.getOwnPropertyNames()
var obj = {
p1: 123,
p2: 456
};
Object.keys(obj)
var obj = {
p1: 123,
p2: 456
};
Object.getOwnPropertyNames(obj)
var a = ['Hello', 'World'];
Object.keys(a)
Object.getOwnPropertyNames(a)
var obj = {
p1: 123,
p2: 456
};
Object.keys(obj).length
Object.getOwnPropertyNames(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()
5. Object 的实例方法
Object.prototype.valueOf()
Object.prototype.toString()
Object.prototype.toLocaleString()
Object.prototype.hasOwnProperty()
Object.prototype.isPrototypeOf()
Object.prototype.propertyIsEnumerable()
5.1 Object.prototype.valueOf()
var obj = new Object();
obj.valueOf() === obj
var obj = new Object();
obj.valueOf = function () {
return 2;
};
1 + obj
5.2 Object.prototype.toString()
var o1 = new Object();
o1.toString()
var o2 = {a:1};
o2.toString()
var obj = new Object();
obj.toString = function () {
return 'hello';
};
obj + ' ' + 'world'
[1, 2, 3].toString()
'123'.toString()
(function () {
return 123;
}).toString()
(new Date()).toString()
5.3 toString() 的应用:判断数据类型
var obj = {};
toString()
Object.prototype.toString.call(value)
不同数据类型的Object.prototype.toString方法返回值如下。
数值:返回[object Number]。
字符串:返回[object String]。
布尔值:返回[object Boolean]。
undefined:返回[object Undefined]。
null:返回[object Null]。
数组:返回[object Array]。
arguments 对象:返回[object Arguments]。
函数:返回[object Function]。
Error 对象:返回[object Error]。
Date 对象:返回[object Date]。
RegExp 对象:返回[object RegExp]。
其他对象:返回[object Object]。
5.4 Object.prototype.toLocaleString()
var obj = {};
obj.toString(obj)
obj.toLocaleString(obj)
var person = {
toString: function () {
return 'Henry Norman Bethune';
},
toLocaleString: function () {
return '白求恩';
}
};
person.toString()
person.toLocaleString()
var date = new Date();
date.toString()
date.toLocaleString()
5.5 Object.prototype.hasOwnProperty()
var obj = {
p: 123
};
obj.hasOwnProperty('p')
obj.hasOwnProperty('toString')