对象方法

所有js对象都从Object.prototype继承属性。这些继承属性主要是方法。比如:
hasOwnProperty()
propertyIsEnumerable()
还有定义在Object构造函数上的静态方法,比如:
Object.create()
Object.keys()

此次主要介绍的是Object.prototype上定义的几个通用方法。

1. toString()方法

该方法不接收参数,返回调用它的对象的值的字符串。由于这个默认方法不会显示太有用的信息,很多累都会重新定义自己的toString()方法。例如,把数组转为字符串时,会得到数组元素的一个列表,每个元素也都会转为字符串;。把函数转为字符串时,会得到函数的源代码。

// 定义自己的toString()方法
let point ={
  x:1,
  y:2,
  toString:function(){return `(${this.x}, ${this.y})`;} 
}
console.log(String(point));    //(1,2)
console.log(point.toString())    //(1,2)

2. toLocaleString()方法

这个方法用于返回对象的本地化字符串表示。

let point ={
  x:1,
  y:2,
  u:1000,
  v:2000,
  toString:function(){return `(${this.x}, ${this.y})`;}, 
  toLocaleString:function(){
    return `(${this.u.toLocaleString()},${this.v.toLocaleString()})`;
  }
}
console.log(String(point));
console.log(point.toString());
console.log(point.toLocaleString());      //(1,000,2,000)千分位分隔符

3. valueOf()方法

当js需要把对象转换为某些非字符串原始值时被调用。

4. toJSON()方法

Object.prototype上并未定义toJSON()方法,但JSON.stringify()会从序列化的对象上寻找toJSON()方法。如果序列化的对象上存在这个方法,就会调用它,然后序列化该方法的返回值,而不是原始对象。Date类定义了自己的toJSON()方法,返回一个表示日期的序列化字符串。

你可能感兴趣的:(对象方法)