zoukankan      html  css  js  c++  java
  • JavaScript原型链中toString()方法输出alert()和console.log()得到不同的结果

      1. <script language="javascript">
      2. function myObj(){
      3.     var total = 0;
      4. }
      5. myObj.prototype.add = function(a,b){
      6.         this.total = a + b;
      7. }
      8. myObj.prototype.toString = function(){
      9.         return this.total;
      10. }
      11.  
      12. var obj = new myObj();
      13. obj.add(1,2);
      14. console.log(obj);  // 这里输出结果为myObj
      15. alert(obj);     // 这里输出结果为3
      16. </script>

    原因:

    console.log() 可以打印任何类型的数据。而 alert() 只能输出string,如果alert输出是对象会自动调用toString()方法。如果想console.log() 输出的与alert相同,需要调用toString():

    console.log(obj.toString());

  • 相关阅读:
    INTZ DX format
    多线程渲染
    BindVertexbuffer
    Lock flag DX
    Triple buffering and vsync
    可迭代对象和迭代器
    装饰器
    闭包函数
    名称空间和作用域
    函数对象
  • 原文地址:https://www.cnblogs.com/mmlvj/p/4612047.html
Copyright © 2011-2022 走看看