将值传递给Javascript中的嵌套函数

时间:2015-10-08 21:49:58

标签: javascript

我有

function Outer(x, y){
     var X = x;
     this.x = x;

      $('#div1').find('input[type=checkbox]').each(function(index, values){
           $(values).text(x); //x is undefined
           $(values).text(X); //X is undefined
      });
}

如何将值传递给内部函数?

2 个答案:

答案 0 :(得分:3)

首先:所有JavaScript函数都可以访问在其父作用域上定义的变量。有关详情,请参阅here

第二:'this'在你使用它时并不是指'本身',它指的是相关函数的调用网站。

所以在你的情况下,你需要做的就是

function Outer(x, y) {
  $('#div1').find('input[type=checkbox]').each(function(index, values){
       $(values).text(x);
  });
}

然后调用Outer,其值为x和y

Outer(2, 3);

答案 1 :(得分:1)

简单地使用x

function Outer(x, y){
  $('#div1').find('input[type=checkbox]').each(function(index, values){
       $(values).text(x);
  });
}

因为内部函数可以访问外部函数的范围。

如果xundefined,那么您将undefined传递给Outer