代码之家  ›  专栏  ›  技术社区  ›  TobyRush

如何创建将传递的参数视为文本的函数?

  •  0
  • TobyRush  · 技术社区  · 3 年前

    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 是否使用原始值,而不是变量的引用?非常感谢。

    1 回复  |  直到 3 年前
        1
  •  3
  •   epascarello    3 年前

    您必须执行一些存储变量的操作。制作一个返回函数的函数是一种方法。

    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"));