【问题标题】:how to use outside var/statement inside another function [closed]如何在另一个函数中使用外部变量/语句[关闭]
【发布时间】:2016-12-20 04:29:37
【问题描述】:

如何以及其他方法是什么

function myFun2(){    
var e = 10 * x;
var f = 20 * x;
}
var array = [1,2,3]
array.forEach(function(x){
 myFun2;
 e + f ;
})

或

var e = 10 * x;
var f = 20 * x;
var array = [1,2,3]
array.forEach(function(x){
 e + f ;
})

我想得到e + f 的输出,有什么不同的方法可以做到这一点?

【问题讨论】:

  • myFun2; 和 e + f; 应该做什么?从函数中返回值......
  • 你不能,因为范围仅限于函数。
  • 有什么方法可以做到这一点?
  • 你想做什么?您认为传统的参数传递和返回值无法解决的问题是什么?

标签: javascript function variables scope


【解决方案1】:

var  par , M ;
function myFun(e){
	 par = 100 ;
     //M = par - e ;
  M = par - 10 ;
	}
var sms = [1,2,3];
sms.forEach(function(e) {
	myFun(e);
    e=M
    console.log(""+M)
    });
 

你可以通过将 e 和 f 变量设为全局变量来做这样的事情

var e=0;
var f=0;
function myFun2(x){    
 e= 10 * x;
 f= 20 * x;
}
array = [1,2,3]
array.forEach(function(x){
 myFun2(x);
 console.log(e + f) ;
})

【讨论】:

  • 如果我将e = 10 和f=20 声明为全局,它会起作用吗?
  • 是的,它会工作,你可以签入与上图相同的工作 sn-p
  • 我已经插入了您在链接中提供的代码 sn-p 并通过从函数内部删除 par 和 M 的声明来稍微更改它。如果您在函数内部再次声明变量变量将成为局部变量,它将代替全局变量进行操作
  • 是的,我帖子中的第一个代码 sn-p 是您的实际代码,经过一些更改后会起作用
【解决方案2】:

我不明白你到底想做什么,但似乎你想为数组的每个值调用myFun2 并获得结果。

function myFun2(x){
  var e = 10 * x;
  var f = 20 * x;
  return +e + +f;
}
array = [1,2,3]
array.forEach(function(x){
  var result = myFun2(x);
})

【讨论】:

    【解决方案3】:
    var array = [ 1,2,3 ]; 
    func1(x);
    
    function func1(params) {
      for (i=0; i<params.length; i++) {
       var sum=func2(x);
    alert(sum);
      }
    }
    
    function func2(y) {
    var e=y*10:
    var f=y*20:
    return e+f;
      }
    

    【讨论】:

    • 仅代码答案不是好的答案,因为它们无法解释问题所在以及如何解决问题。 @srinivas
    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    相关资源
    最近更新 更多