Javascript 速记方法定义
我正在运行以下代码:Javascript 速记方法定义,javascript,object,methods,Javascript,Object,Methods,我正在运行以下代码: const myobj ={ mynum: ()=>{console.log("1")}, } console.log(myobj.mynum()) 它返回: 1. 未定义 “未定义”从何而来?创建这样一个方法的主要目的是什么?这是一种方法吗 未定义的原因是函数不返回任何内容。例如 () => 3 该函数将返回一个3,注意函数周围没有任何{},因此将返回最后计算的值 然后以该函数为例: ()=>{return 3;} 这也将返回一个3,因为我们已经显式地添加
const myobj ={
mynum: ()=>{console.log("1")},
}
console.log(myobj.mynum())
它返回:
1.
未定义
“未定义”从何而来?创建这样一个方法的主要目的是什么?这是一种方法吗 未定义的原因是函数不返回任何内容。例如
() => 3
该函数将返回一个3,注意函数周围没有任何{}
,因此将返回最后计算的值
然后以该函数为例:
()=>{return 3;}
这也将返回一个3,因为我们已经显式地添加了一个return语句
在本例中,如果要使用大括号,则需要添加一个显式的return语句,但是
{}
console.log也会返回undefined,因此在本例中,任何一种方法都会产生undefined
。未定义的原因是函数不返回任何内容。例如
() => 3
该函数将返回一个3,注意函数周围没有任何{}
,因此将返回最后计算的值
然后以该函数为例:
()=>{return 3;}
这也将返回一个3,因为我们已经显式地添加了一个return语句
在你的例子中,如果你想使用大括号,你需要添加一个显式的返回语句,但是
{}
控制台.log也会返回未定义的,因此在你的例子中,任何一种方法都会产生未定义的。你没有返回任何东西。看这个:没有。“速记方法定义”指的是。您不会返回任何内容。看这个:没有。“速记方法定义”指的是。@RyanB true,但这不一定是方法声明的一部分,而是作为数学表达式计算的,因此函数的形式仍然是()=>3
,例如()=>(5-2)
@RyanB true,但这不一定是方法声明的一部分,相反,它会作为一个数学表达式进行计算,因此该函数的形式仍然是()=>3
,例如()=>(5-2)