0

如何在我的变量“输入”不全局的情况下传递用户输入的值(来自提示)以在另一个函数中使用?

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)
}
4

6 回答 6

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());
于 2013-05-13T13:25:35.363 回答
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)
 }

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

于 2013-05-13T13:31:25.017 回答
0
function One(){
var input = prompt('enter a number');
return isNaN(input) ? "Not a number" : parseInt(input);
}

function Two(){
    document.getElementById('initial').value = One();
}
于 2013-05-13T13:26:16.597 回答
0

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

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

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

用法:

var inp = One();
Two(inp);
于 2013-05-13T13:26:21.957 回答
0
(function() {
    // ALL YOUR CODE !
    var input = '';
}());

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

于 2013-05-13T13:24:58.450 回答
0

最后One,你可以放Two(input);吗?

于 2013-05-13T13:25:05.763 回答