如何创建一个将传递的参数视为文字的函数?
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
传递给这些函数,以便使用原始值,而不是对变量的引用?谢谢!
您将不得不做一些存储变量的事情。制作一个函数 returns 一个函数是一种方法。
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"));
我确信这个问题之前已经被问过和回答过,但我似乎找不到合适的术语来找到答案。我需要动态创建一系列函数供以后使用,这些函数使用创建时由参数定义的某些值。例如:
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
传递给这些函数,以便使用原始值,而不是对变量的引用?谢谢!
您将不得不做一些存储变量的事情。制作一个函数 returns 一个函数是一种方法。
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"));