当将JavaScript函数作为参数传递给另一个函数时,是否可以访问传递的其他变量?

时间:2014-04-25 13:49:10

标签: javascript

我有一个像这样的JavaScript函数:

obj.use('hello', function () {
  // Here I want to access the string 'hello'
});

这是否可行,或者我可以使用哪些好的解决方法?

2 个答案:

答案 0 :(得分:1)

我的回答是基于您的使用情况表明use是对象obj的方法的假设。在这种情况下,实现目标的方法是使用相同的对象将第一个参数存储到obj.use

  var obj = {
    use: function(greeting, fn) {
        obj.greeting = greeting;
        fn();
    }
  }

  obj.use('hello', function () {
    console.log(obj.greeting); //output: 'hello'
  });

答案 1 :(得分:0)

  

//我想在这里访问字符串' hello'

那很简单,你只需将字符串存储在一个变量中,该变量的范围可以在方法中访问:

var greeting = 'hello';
obj.use(greeting, function () {
    console.log(greeting); // logs "hello"
});