1.我们为什么要了解这两种方法

    众所周知,toString()函数和valueOf函数,这两个函数是Object类的对象生来就拥有的,而且他们还可以允许我们重写,那么,这两个函数到底有什么用呢?

 从名称上判断,toString()将对象转换为字符串,valueOf将对象转化为值.那么问题来了:什么时候需要将对象转换为值,又什么时候需要将对象转换为字符串呢?------这是我们这篇文章的核心。

   在谈这个问题之前,我们先看一道题目:       

   这是一道很经典的题目,考察的就是我们对于一些基本概念的理解,当然也是一道很难的题目,甚至第一眼看起来是一道不可能实现的题目.

 请用javascript语言实现,  var a= add(1)(2)(3)(4)(5); //结果为5个数相加,15------------来源于http://dmitry.baranovskiy.com/post/31797647 

 

var add = function (n) {
  var result = n;
  var func1 = function (m) {
    result += m;
    return func1;
  }
  func1.toString = function () {
    return result.toString();
  }//重写对象的toStrig函数
  func1.valueOf = function () {
    return result;
  }//重写对象的valueOf函数
  
  return func1;
}
var a = add(1)(2)(3)(4)(5);
console.log(a);//15
console.log(a+10)//25
答案

相关文章: