Object

67 阅读1分钟

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()