【发布时间】:2019-10-11 17:16:40
【问题描述】:
我有一个无法修改的函数,我需要调用它,但我以前从未见过这样的东西。
var myCategorize = function(z) {
return function(q) {
return 1;
}
}('window'.indexOf('w') > 0 || window || false);
为了简化,我已经去掉了 function(q) 部分的一些代码。
我想我有一个柯里化函数,所以我尝试了这个:
let category = myCategorize(bookTitles[i])(categories);
但是当我这样做时,我收到以下错误:
Uncaught TypeError: myCategorize(...) is not a function
所以也许这是一个匿名构造函数,所以我尝试这样的事情:
let category = function(){myCategorize(bookTitles[i])(categories)};
console.log(category.apply());
我得到同样的错误。如何调用这个函数并得到返回值1?
【问题讨论】:
-
myCategorize指的是作用域函数function(q) { return 1; },而不是外部函数。 -
什么...
'window'.indexOf('w') > 0将始终解析为 false。 -
myCategorize(x)将始终返回 1 -
函数不是我写的,请看问题。我知道它总是会解析为 false 并且总是返回 1。为了简单起见,我删除了内部代码,因为我无权发布它。
-
@MattKuhns 您可能不会编写函数,但使用 745 rep 您应该知道它不是 minimal reproducible example 有这些噪音。
标签: javascript function ecmascript-6