传递一个函数中的值以在另一个函数中使用

时间:2013-05-13 13:22:50

标签: javascript

如果我的变量“input”是全局的,我如何传递用户输入的值(来自提示)以用于另一个函数?

function One(a){
    var input = ' ';
    input = parseInt(prompt('enter a number');
}

function Two(b){
    document.getElementById('initial').value =  input //input is user input from function One(a)
}

6 个答案:

答案 0 :(得分:2)

  

传递一个要在另一个

中使用的函数的值

这是参数的作用。

function One(){
  var input = ' ';
  input = parseInt(prompt('enter a number');
  return input;
}

function Two(b){
document.getElementById('initial').value =  b//input is user input from function One(a)
}

Two(One());

答案 1 :(得分:0)

(function() {
    // ALL YOUR CODE !
    var input = '';
}());

将代码包装到自执行函数中很可能是避免破坏全局对象的最简单方法。当然有更复杂的方法,比如命名空间对象模块化编程模式,但为了避免创建全局变量,你可以创建和使用私有范围。

答案 2 :(得分:0)

One结束时,您可以放Two(input);吗?

答案 3 :(得分:0)

function One(){
var input = prompt('enter a number');
return isNaN(input) ? "Not a number" : parseInt(input);
}

function Two(){
    document.getElementById('initial').value = One();
}

答案 4 :(得分:0)

从第一个函数返回值,并将其作为参数发送到第二个函数中:

function One() {
  return parseInt(prompt('enter a number'), 10);
}

function Two(input) {
  document.getElementById('initial').value = input;
}

用法:

var inp = One();
Two(inp);

答案 5 :(得分:0)

如果您担心使用太多变量污染全局命名空间,但那些仍然是“全局”的,即几个函数需要访问它们,您可以将它们放在一个全局对象中。

 window.myGlobals = {};
 function One(a){
 myGlobals.input = parseInt(prompt('enter a number');
 }

 function Two(b){
 document.getElementById('initial').value =  myGlobals.input //input is user input from function      One(a)
 }

如果您正在寻找函数Two来访问函数One中的所有数据,您可以创建一个闭包。如果没有更多关于你在这里尝试实现的信息,很难知道。