zz.b();就可以获取到值,zz.c()就会报错,为什么对象的属性必须是个匿名函数呢?
zz.c不是函数,除非你的show函数返回一个函数。
希望你不要晕了。。
因为c是show(i)的返回值,并不是一个函数,你可以把show函数返回一个函数对象!
还有就是你为什么不直接贴代码,而要弄张图上来!!!
你这里的c:show(i)不是定义一个函数了,而执行了show(i),c为show(i)的返回值
show(i) => 这是执行
function show(i) => 这是定义
你这么写就相当于
{
c: console.log('haha')
}
这样,zz.c 值为 undefined
,当然不是函数。
呃,,,你还是再好好看看 JS 基础知识吧。
你没发现你那那些代码执行后就输出了一个 haha
吗? show(i)
此时已经执行了,还没有返回,zz.c
是 undefined
,肯定无法执行。
很简单 你的c
是show(i)
你的show(i)
的返回值是undefined
你可以这样:
zzz.b//function
zzz.c//undefined
function可以执行所以zzz.b()是合法的