gpt4 book ai didi

Javascript 函数调用,如 somefunction ("Hi") ("Hello") ("How")

转载 作者:行者123 更新时间:2023-12-03 11:46:35 25 4
gpt4 key购买 nike

请看一下这段代码。我需要显示一条警报消息“mikä on elämän tarkoitus?”使用此代码

window["mikä"]("on")("elämän")("tarkoitus")("?"); 

我需要编写一个函数或一段代码,以便在执行该代码时显示该警报消息。

我写了一个这样的函数:

window["mikä"] = function(str){
alert(str);
}

当我调用窗口“mikä”时,它会起作用,但如果我在控制台中添加更多类似下面的内容,我会看到类型错误。

 window["mikä"]("on")("Hello")("How"); 

我的问题是,由于有多个功能标志,像下面这样的调用是否有效?

window["mikä"]("on")("elämän")("tarkoitus")("?") 

最佳答案

要实现您正在寻找的功能,一种方法是编写一个函数,该函数返回一个函数,该函数返回一个函数,如其他人提到的那样。如果事先知道函数的数量,那么效果很好。另一种方法是使用名为 currying 的函数式编程技术。 ,即

the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument (partial application).

您可以像这样编写自己的柯里函数:

function curry(func, args_) {
var self = this;

self.args = args_ || [];

return function() {
var extended_args = [].concat(self.args).concat(Array.slice(arguments));

if(extended_args.length >= func.length)
return func.apply(this, extended_args);

return new curry(func, extended_args);
};
}
var funcName = "mikä";
window[funcName] = curry(functionstr1, str2, str3, str4) {
alert(funcName + ' ' + str1 + ' ' + str2 + ' ' + str3 + str4);
});
window["mikä"]("on")("elämän")("tarkoitus")("?");

如果您有兴趣了解有关 JS 中的柯里化(Currying)/函数式编程的更多信息,这里有一些资源可以为您提供帮助。

http://kukuruku.co/hub/javascript/an-interesting-task-for-an-interview-currying-and-partial-applicationof-a-function http://tech.pro/tutorial/2011/functional-javascript-part-4-function-currying Reginald Braithwaite's talk in NDC Oslo

关于Javascript 函数调用,如 somefunction ("Hi") ("Hello") ("How"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com