当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

Javascript中函数的toString()方法

发表于: 2013-12-10   作者:周凡杨   来源:转载   浏览:
摘要: 简述     The toString() method returns a string representing the source code of the function.     简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。 句法     function.

简述

    The toString() method returns a string representing the source code of the function.

    简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。

句法

    function.toString(indentation) 或 Function.prototype.toString()

详细描述

     The Function object overrides the toString method inherited from Object; it does not inheritObject.prototype.toString. For Function objects, the toString method returns a string representation of the object in the form of a function declaration. That is, toString decompiles the function, and the string returned includes the function keyword, the argument list, curly braces, and the source of the function body.

JavaScript calls the toString method automatically when a Function is to be represented as a text value, e.g. when a function is concatenated with a string.

 

 先来看看默认情况下使用toString()会返回什么

<script type="text/javascript">
                   function sum(a){
                        var t = 1;
                             return sum;
                   }
                   alert((sum(1)).toString());
</script>

 

    运行代码1后,浏览中弹出框的内容是:

function sum(a){
     var t = 1;
     return sum;
}

    这里也证明了函数的toString() 方法默认下返回的是该函数的源代码(字符串格式)。

 

   根据上面的详细描述,函数的toString()方法可以被override,即重写。我们来重写该方法:

 

<script type="text/javascript">
         function sum(a){
              var t = 1;
              sum.toString = function(){
                    return "override toString method";
               }
               return sum;
         }
        alert((sum(1)).toString());
</script>

   

    运行代码2后,浏览器弹出框中的内容是: 

override toString method

   从运行结果中得出结论,toString()方法已经被重写。

 

 

学以致用:

    问题:

     创建一个函数sum,使得:sum(a)(b) = a+b; sum(a)(b)…(c)=a+b+…+c; 成立。

 

 <script type="text/javascript">
                   function sum(a){
                        var sum = a;
                             function t(b){
                                sum += b;
                                     return t;
                             }                 
                            t.toString = function() { return sum }
                            return t;
                   }
                   alert(sum(1)(2)(-1));
                   alert(sum(1)(2)(-1)(7));
         </script>

    在这个例子中,最后是使用toString方法成功的返回了sum值,解答问题完毕。

 

 

    参考资料:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString

 

 

Javascript中函数的toString()方法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
javascript中的toString()方法,主要用于Array、Boolean、Date、Error、Function、Number等对象。下
javascript中的toString()方法,主要用于Array、Boolean、Date、Error、Function、Number等对象。下
首先我们随意创建一个对象,这很简单,打开FF浏览器的Firebug切换到控制台或者打开webkit浏览器的审查
首先我们随意创建一个对象,这很简单,打开FF浏览器的Firebug切换到控制台或者打开webkit浏览器的审查
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。 它通
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。 它通
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。 它通
toString public String toString() 返回该对象的字符串表示。通常, toString 方法会返回一个“以
js中的很多事件 而事件相对应的就是方法(函数 )那么今天所说的就是这三种方法 已onclick事件为例
转自 举个简单例子: 假设在古代,一两黄金换20两白银,一两白银换25枚铜钱,构建描述货币的类: fun
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号