以前写JS都是简单的表单验证,从来也没有做过其他什么操作。

    有很多人肯定写过这样的代码

   

1 var number = 10;
2 alert(number + 10);    // result:20
3 alert(number + "10"); // result:1010

   我当初看这几段代码的时候,很随意的就过去了啊。很明显的东西啊。数据自动转换。
   没看出有啥不妥的地方。为什么会这样了啊。我也没有了解过。今天我看到这样的一个例子就有点发懵了。

   我们先来自定义一个Demo来看看

function Demo(value) {

            this.valueOf = function () { 
                alert("调用ValueOf方法");
                return value;
            }

            this.toString = function(){
                alert("调用toString方法");
                return "ToString" + this.valueOf();
            } 
}
var demo = new Demo(22);
           
alert(demo + 10);
document.write(demo);

  如果先要转换成数值类型的时候,他就调用valueOf方法。如果先转换成字符类型的时候,就调用toString方法。
  记住这一点哦。
  不过我也不知道明白了这一点有什么用处。大家可以发表自己的意见。我们一来来学习诡异的JS.

相关文章:

  • 2021-09-24
  • 2021-12-09
  • 2022-02-22
  • 2022-12-23
  • 2022-12-23
  • 2021-09-19
  • 2022-03-04
猜你喜欢
  • 2021-04-18
  • 2022-01-19
  • 2021-08-31
  • 2022-01-05
  • 2022-12-23
  • 2021-10-28
相关资源
相似解决方案