2 beamon  Beamon__ 于 2017.09.07 21:41 提问

函数添加toString方法

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

4个回答

caozhy
caozhy   Ds   Rxr 2017.09.08 08:23

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

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

showbo
showbo   Ds   Rxr 2017.09.08 09:19

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

qq_36936155
qq_36936155   2017.09.12 22:54

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

qq_36936155
qq_36936155   2017.09.12 22:56

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

Csdn user default icon
上传中...
上传图片
插入图片