首页 > 编程笔记 > JavaScript笔记 > JS面向对象编程 阅读:2,297

JS toString()方法:返回一个对象的字符串

JavaScript toString() 是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上,所有 Object 的实例对象都会继承 toString() 方法。

toString() 方法能够返回一个对象的字符串,它返回的字符串比较灵活,可能是一个具体的值,也可能是一个对象的类型标识符。

toString() 的语法格式如下:

object.toString()

返回值:返回一个表示该对象的字符串。

示例1

下面代码显示对象实例与对象类型的 toString() 原型方法返回值是不同的。
function F (x, y) {  //构造函数
    this.x = x;
    this.y = y;
}
var f = new F(1, 2);  //实例化对象
console.log(F.toString());  //返回函数的源代码
console.log(f.toString());  //返回字符串"[object Object]"
toString() 原型方法返回信息简单,为了能够返回更多有用信息,用户可以重写该方法。例如,针对实例对象返回的字符串都是 "[object Object]",可以对其进行扩展,让对象实例能够返回构造函数的源代码。
Object.prototype.toString = function () {
    return this.constructor.toString();
}
调用 f.toString() ,则返回函数的源代码,而不是字符串 "[object Object]"。当然,重写方法不会影响 JavaScript 内置对象的 toString() 返回值,因为它们都是只读的。
console.log(f.toString());  //返回函数的源代码
当把数据转换为字符串时,JavaScript 一般都会调用 toString() 原型方法来实现。由于不同类型的对象在调用该方法时,所转换的字符串都不同,而且都有规律,所以开发人员常用它来判断对象的类型,弥补 typeof 运算符和 constructor 属性在检测对象类型的不足。

示例2

当自定义类型时,用户可以重置 toString() 原型方法,自定义对象的数据类型。下面示例为自定义类型 Me 定义一个标识字符串 "[object Me]"。
function Me() {}  //自定义数据类型
Me.prototype.toString = function () {  //自定义Me数据类型的toString()方法
    return "[object Me]";
}
var me = new Me();
console.log(me.toString());  //返回"[object Me]"
console.log(Object.prototype.toString.apply(me));  //默认返回"[object Object]"

Object 还定义了 toLocaleString() 方法,该方法主要作用——留出一个接口,允许不同的对象返回针对本地的字符串表示。在默认情况下,toLocaleString() 方法返回值与 toString() 原型方法返回值完全相同。

目前,主要有 3 个对象自定义了 toLocaleString() 方法。 在 Array 中重写 toString(),让其返回数组元素值的字符串组合;在 Date 中重写 toString(),让其返回当前日期字符串表示;在 Number 中重写 toString(),让其返回数字的字符串表示;在 Date 中重写 toLocaleString(),让其返回当地格式化日期字符串。

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注

所有教程

优秀文章