我试图了解如何在JS中实现这样的功能,这种方法的主要用途是什么?
倍数(5)将返回5 multiple(5)(6)将返回30
我们如何在JavaScript中实现这样的功能?
答案 0 :(得分:1)
您可以使用valueOf
和返回功能的函数。
在此处:multiple(5)
将返回5 multiple(5)(6)
将返回30
function multiple(x){
function func(y){
return x*y
}
func.valueOf=function(){return x}
return func
}
请参阅此JSFiddle:https://jsfiddle.net/k9meraL6/
alert(multiple(5)(6)) //30
alert(multiple(5) + 1) //6
JavaScript调用valueOf方法将对象转换为原始值
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf