关于valueOf() 和 toString(),我们需要知道的事儿

valueOf()

  1. 解释:返回指定对象的原始值。
  2. 当对象需要原始值的时候,JavaScript会自动调用它。
  3. 不同类型对象的valueOf()方法的返回值
    Array 返回数组对象本身。
    Boolean 布尔值。
    Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。
    Function 函数本身。
    Number 数字值。
    Object 对象本身。这是默认情况。
    String 字符串值。
    Math 和 Error 对象没有 valueOf 方法。

toString()

  1. .每个Object对象都包含该方法。
  2. 当Object对象以字符串方式引用时会被自动调用,注意,是Object对象。
  3. 默认调用时返回[object type]。例如:
var o = new Object();
o.toString();
控制台返回结果:"[object Object]"

4.可以使用toString()检测对象类型
例如:

var a="dd";
toString.call(a);
"[object String]"

不过貌似没啥实用性,采取这种调用方式无法获得"[object String]"

两者都可以通过显示原型重新定义:
myObject.prototype.valueOf() = function myValueOf(){};
myObject.prototype.toString() = function myToString(){};
重写函数都可以为匿名函数。

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2e6ek1a3vmjoo

猜你喜欢

转载自blog.csdn.net/bengxu/article/details/80244495
今日推荐