我有一个类似这样的功能:
var func1 = function () {
var apple;
//Some other code
};
我已经将该函数作为其他函数的参数传递
control(func);
现在,我想访问控制函数中的变量 apple。func1.apple
不起作用。有谁知道这是如何做到的?
我有一个类似这样的功能:
var func1 = function () {
var apple;
//Some other code
};
我已经将该函数作为其他函数的参数传递
control(func);
现在,我想访问控制函数中的变量 apple。func1.apple
不起作用。有谁知道这是如何做到的?
在不更改函数的情况下使用这种语法是不可能的。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
});
* 属性是另一种方式,但它们算作回调并且是邪恶的 :)
我认为您可能正在寻找的是构造函数模式
var func1 = function () {
this.apple = "My Apple";
};
var myFuncInstance = new func1();
myFuncInstance.apple; // "My Apple"