一个函数来从许多其他函数中接收变量

时间:2016-02-26 11:37:58

标签: javascript

我在javascript中处理某些功能的问题。 所以我有这个例子

function(something) {
   var example = 1;
   var example2 = 2;    
            NameReturn(nameBusinessID, function(no) {
                    console.log(no);
                    //here is one callback value from another function

                });
            typeReturn(object, function(na) {
                    console.log(na);
                   //here is also a callback value from another function
                }); 
      view(example, example2);  
}   
function vliew(example, example2) {  
   console.log(example, example2);
   //but here i want also to console.log the variables "no" and "na"
}

所以这是我的问题,有没有办法实现我想要的?

我不知道如何制作这两个变量," no"和" na"将它们传递给函数"查看" 有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:0)

肮脏的方式

    function(something) {
   var example = 1;
   var example2 = 2;    
            NameReturn(nameBusinessID, function(no) {
                    console.log(no);
                    //here is one callback value from another function
                    typeReturn(object, function(na) {
                        console.log(na);
                   //here is also a callback value from another function
                     view(example, example2,no, na);  
                  });
                });


}   
function vliew(_example, _example2,_no,_na) {  
   console.log(_example)
   console.log(_example2)
   console.log(_no)
   console.log(_na)

}

<强>更新

我稍微修改了你的用例并再次使用了。你可以检查这个代码。

我正在侦听按钮点击回调并更新常见对象中的值。所有四个值都可用,即可调用视图函数。

点击两个按钮,您将看到结果。

&#13;
&#13;
function collector() {
  this.counter = 0;
  this.obj = {};
  this.setValues = function(name, value) {
    this.counter++;
    this.obj[name] = value;
    if (this.counter == 4) {
      view(this.obj.example, this.obj.example2, this.obj.no, this.obj.na);
    }
  };


}

function view(example, example1, a, b) {
  $('.result').append('example :' + example + '<br>');
  $('.result').append('example2 :' + example1 + '<br>');
  $('.result').append('na :' + a + '<br>');
  $('.result').append('no :' + b + '<br>');
}

function load() {

  var example = 1;
  var example2 = 2;
  var valueCollector = new collector();

  $('.no').on('click', function() {
    var no = 3;
    valueCollector.setValues('no', no);
  });
  $('.na').click(function() {
    var na = 4;
    valueCollector.setValues('na', na);
  });
  valueCollector.setValues('example', example);
  valueCollector.setValues('example2', example2);

}

load();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="no">no</button>
<button class="na">na</button>
<div class="result"></div>
&#13;
&#13;
&#13;