浅谈JS的toString

Posted jianxian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈JS的toString相关的知识,希望对你有一定的参考价值。

(1)通俗理解:

toString返回相应值的字符表示法

技术图片

 

 

 

 

(2)覆盖默认的 toString 方法

  默认情况下,toString() 方法被每个 Object 对象继承。如果此方法在自定义对象中未被覆盖,toString() 返回 "[object type]",其中 type 是对象的类型。如下所示

  技术图片

 

 

   接下来自定义一个方法,来取代默认的 toString() 方法。该 toString() 方法不能传入参数,并且必须返回一个字符串。自定义的 toString() 方法可以是任何我们需要的值,但如果它附带有关对象的信息,它将变得非常有用。

以下代码定义了 Dog 对象类型,并创建了一个 Dog 类型的ergou对象

  技术图片

 

 

   如果当前的对象调用了 toString() 方法,它将会返回从 Object继承而来的 toString() 方法的返回默认值:

  技术图片

 

 

   定义了一个叫做 dogToString() 的方法来覆盖默认的 toString() 方法。这个方法生成一个 "property = value;" 形式的字符串,该字符串包含了当前对象的name、age、color

  技术图片

 

 

   技术图片

 

 

   任何时候在字符串上下文中使用 ergou.toString() 时,javascript 都会自动调用 dogToString() 方法(dogToString() 可以是一个匿名函数),并且返回以下字符串:

name:二狗,age:3,color:yellow

 

  

(3)使用 toString() 检测对象类型

  这里参考文章为什么用Object.prototype.toString.call(obj)检测对象类型?

  可以通过 toString() 来获取每个对象的类型。为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用,传递要检查的对象作为第一个参数,称为 thisArg

  技术图片

 

   测试如下

  技术图片技术图片

 

 

   

  

 

 

 

.

以上是关于浅谈JS的toString的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中toStirng()与Object.prototype.toString.call()方法浅谈

源码浅谈:java中的 toString()方法

浅谈(String),toString() ,String.ValueOf() 3种类型转换

实用代码片段

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段