JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。
Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。
所谓实例方法就是定义在Object原型对象Object.prototype上的方法。它可以被Object实例直接使用。
所谓“静态方法”,是指部署在Object对象自身的方法。
Object.prototype.print = function () {
console.log(this);
};
var obj = new Object();
obj.print() // Object
这里只要知道,凡是定义在Object.prototype对象上面的属性和方法,将被所有实例对象共享就可以了。
instanceof运算符用来验证,一个对象是否为指定的构造函数的实例。
如果Object方法的参数是一个对象,它总是返回该对象,即不用转换。
var arr = [];
var obj = Object(arr); // 返回原数组
obj === arr // true
Object对象的实例方法
默认情况下,valueof() 返回对象本身
Object.prototype.toString方法返回对象的类型字符串,因此可以用来判断一个值的类型。
Object.prototype.toLocaleString()
Object.prototype.toLocaleString方法与toString的返回结果相同,也是返回一个值的字符串形式。
var obj = {};
obj.toString(obj) // "[object Object]"
obj.toLocaleString(obj) // "[object Object]"
这个方法的主要作用是留出一个接口,让各种不同的对象实现自己版本的toLocaleString,用来返回针对某些地域的特定的值。
var person = {
toString: function () {
return 'Henry Norman Bethune';
},
toLocaleString: function () {
return '白求恩';
}
};
person.toString() // Henry Norman Bethune
person.toLocaleString() // 白求恩
目前,主要有三个对象自定义了toLocaleString方法。
- Array.prototype.toLocaleString()
- Number.prototype.toLocaleString()
- Date.prototype.toLocaleString()