函数添加toString方法

现有以下案例:
图片说明
加载后得到以下结果:
图片说明
以下代码的用途比较迷惑:
图片说明
如果给函数添加toString方法,则可打印f 1,如果不添加打印函数代码体,在这里函数的toString方法起到什么作用呢?还望各位朋友可以帮助解答

4个回答

这是函数柯里化的一种固定写法,类似传统编程的循环。

http://www.cnblogs.com/zztt/p/4142891.html

重写foo这个对象默认toString方法,否则foo是函数,log时默认toString返回函数体,重写后就返回指定的值

这里涉及3个知识
1.函数柯里化
楼上的朋友已经指出了
2.toString
从对象上看foo在定义toString前,它本身是没有toString方法的,那么直接输出一个对象默认会调用它的toString方法,它本身没有但要访问这个本身不存在的属性将去Function.prototype上找
(这里涉及原型链)
3.toString起到一个输出字符串的作用,这里的console.log(foo)就是代表输出foo的toString字符串化形式

补充2.所以他这里定义了foo自身的toString属性,他将不会再去沿着原型链找,相当于面向对象里的重写(覆盖?屏蔽?)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐