在函数内调用变量

时间:2013-03-12 16:34:11

标签: javascript

我有一个像这样的函数:

var func1 = function () {
       var apple;
       //Some other code
};

我已将该函数作为其他函数的参数传递

control(func);

现在,我想在控制功能中访问变量apple。 func1.apple不起作用。有没有人知道这是怎么做的?

2 个答案:

答案 0 :(得分:2)

在不改变功能的情况下使用这种语法是不可能的。 func1.apple未运行apple,而func1().apple之类的内容已经运行apple。如果您只想返回某些内容,请使用return

执行此操作
var func1 = function() {
    var apple;
    …
    return apple;
};

var apple = func1();

如果要返回多个值,则返回一个对象:

var func1 = function() {
    var apple;
    …
    return {apple: apple};
};

var apple = func1().apple;

如果在函数运行期间需要值,唯一的*方法是在回调中使用另一个回调:

var func1 = function(useApple) {
    var apple;
    …
    useApple(apple);
    …
};

func1(function(apple) {
    // Do something with apple
});

*属性是另一种方式,但它们算作回调并且是邪恶的:)

答案 1 :(得分:0)

我认为你可能正在寻找的是构造函数模式

var func1 = function () {
       this.apple = "My Apple";
};

var myFuncInstance = new func1();

myFuncInstance.apple; // "My Apple"