将变量设置为函数但不应执行该函数

时间:2015-05-25 05:50:26

标签: javascript jquery extjs

我在someMethod1中设置了一些变量,并希望将该变量传递给someMethod2。这里我只想将变量设置为someMethod2函数,但不应该调用该方法。需要稍后在某个事件(单击)上调用它。我怎样才能实现这一目标?请帮帮我。

someMethod1 = function() {
  var test = "testText";
  someMethod2(test)
};

someMethod2 = function(check) {
  var a = check;
};

2 个答案:

答案 0 :(得分:6)

您可以在全局范围内保存变量:

var sharedVars = {};

function someMethod1() {
   sharedVars.a = 'testText';
}

function someMethod2(check) {
   var a = (check)? check : sharedVars.a;
}

或创建一些按键存储和返回值的对象:

var sharedStorage = {
   data: {},
   set: function(key, value) {
       this.data[key] = value;
       return this;
   },
   get: function(key, fallback) {
       return this.data[key] || fallback;
   }
};

function someMethod1() {
   sharedStorage.set('a', 'testText');
}

function someMethod2() {
   var a = sharedStorage.get('a');
}

答案 1 :(得分:3)

在外面声明var test,然后在someMethod1()内设置。现在,您可以在someMethod2()上致电click event并将test设置为a

var test;
someMethod1 = function() {
  test = "testText";
};

someMethod2 = function() {
  var a = test;
};