提问人:TobyRush 提问时间:12/28/2021 更新时间:12/28/2021 访问量:29
如何创建一个将传递的参数视为文本的函数?
How can I create a function which treats a passed parameter as a literal?
问:
我敢肯定,这个问题之前已经有人问过,也回答过,但我似乎找不到合适的术语来找到答案。我需要动态创建一系列函数以供以后使用,这些函数使用创建时参数定义的某些值。例如:
var i = "bar";
var addBar = function(x) {
// needs to always return x + " " + "bar"
return x + " " + i;
}
i = "baz";
var addBaz = function(x) {
// needs to always return x + " " + "baz"
return x + " " + i;
}
alert(addBar("foo")); // returns "foo baz" because i = "baz"
有没有办法传递给这些函数,以便使用原始值,而不是对变量的引用?谢谢!i
答:
3赞
epascarello
12/28/2021
#1
您必须执行一些存储变量的操作。制作一个返回函数的函数是一种方法。
var i = "bar";
var addBar = (function (i) {
return function(x) {
return x + " " + i;
}
}(i));
i = "baz";
var addBaz = (function (i) {
return function(x) {
return x + " " + i;
}
}(i));
console.log(addBar("foo"));
console.log(addBaz("foo"));
评论
0赞
TobyRush
12/28/2021
谢谢!这算不算“咖喱”?
评论
const
i
j
return 'foo ' + i;