Javascript JS-如何正确放置局部变量

Javascript JS-如何正确放置局部变量,javascript,Javascript,我有一个JS模块,我想为局部变量设置一个值。我想我可以用“this”来使用相同的名称: JS amount在函数范围内,因此您不需要这个关键字 (function(){ var amount = 0; var setAmount = function( newAmount ){ amount = newAmount; } })(); amount在函数范围内,因此您不需要这个关键字 (function(){ var amount = 0; var setAmount =

我有一个JS模块,我想为局部变量设置一个值。我想我可以用“this”来使用相同的名称:

JS


amount
在函数范围内,因此您不需要
这个
关键字

(function(){

 var amount = 0;

 var setAmount = function( newAmount ){
   amount = newAmount;
 }
})();

amount
在函数范围内,因此您不需要
这个
关键字

(function(){

 var amount = 0;

 var setAmount = function( newAmount ){
   amount = newAmount;
 }
})();

amount
在函数范围内,因此您不需要
这个
关键字

(function(){

 var amount = 0;

 var setAmount = function( newAmount ){
   amount = newAmount;
 }
})();

amount
在函数范围内,因此您不需要
这个
关键字

(function(){

 var amount = 0;

 var setAmount = function( newAmount ){
   amount = newAmount;
 }
})();

您使用的是自执行匿名函数,您没有“this”,因为这不是一个对象。在您的情况下,您只需:

(function(){

 var amount = 0;

 var setAmount = function( pamount ){

                     amount = pamount;
                }
  ........
 })(); 

您使用的是自执行匿名函数,您没有“this”,因为这不是一个对象。在您的情况下,您只需:

(function(){

 var amount = 0;

 var setAmount = function( pamount ){

                     amount = pamount;
                }
  ........
 })(); 

您使用的是自执行匿名函数,您没有“this”,因为这不是一个对象。在您的情况下,您只需:

(function(){

 var amount = 0;

 var setAmount = function( pamount ){

                     amount = pamount;
                }
  ........
 })(); 

您使用的是自执行匿名函数,您没有“this”,因为这不是一个对象。在您的情况下,您只需:

(function(){

 var amount = 0;

 var setAmount = function( pamount ){

                     amount = pamount;
                }
  ........
 })(); 

这就是
这个
的工作原理

var x = {
amount : 0,
setAmount : function(){
    alert(this.amount);
  }
}

x.setAmount(); //alert 0

这就是
这个
的工作原理

var x = {
amount : 0,
setAmount : function(){
    alert(this.amount);
  }
}

x.setAmount(); //alert 0

这就是
这个
的工作原理

var x = {
amount : 0,
setAmount : function(){
    alert(this.amount);
  }
}

x.setAmount(); //alert 0

这就是
这个
的工作原理

var x = {
amount : 0,
setAmount : function(){
    alert(this.amount);
  }
}

x.setAmount(); //alert 0

想象两个盒子,一个大一个小。小盒子在大盒子里面

小框表示您定义的
setAmount
函数。大框表示封装setAmount函数的闭包

每个盒子只知道它自己的内部和其父外盒的内部

关键字
this
,表示在该框内

小框已经可以看到
金额
,因为它在大框中。如果您在小框中定义
this.amount=something
,则它本质上与说
var amount=something
相同

您还需要小心使用参数名称,因为如果不小心,这只会导致头痛

您遇到的问题是一个范围问题,如果您必须以这种方式命名变量,那么这里有一个解决方案

(function() {
    var amount = 0;
    var scope = this;
    var setAmount = function(amount) {
        scope.amount = amount;
    }
  ........
})();

这样做的目的是在更大的框中创建一个变量,该变量引用回它的范围(在我们的示例中,返回到它自己的框)。因为小盒子在大盒子里面,所以它可以看到范围变量。

想象两个盒子,一个大一个小。小盒子在大盒子里面

小框表示您定义的
setAmount
函数。大框表示封装setAmount函数的闭包

每个盒子只知道它自己的内部和其父外盒的内部

关键字
this
,表示在该框内

小框已经可以看到
金额
,因为它在大框中。如果您在小框中定义
this.amount=something
,则它本质上与说
var amount=something
相同

您还需要小心使用参数名称,因为如果不小心,这只会导致头痛

您遇到的问题是一个范围问题,如果您必须以这种方式命名变量,那么这里有一个解决方案

(function() {
    var amount = 0;
    var scope = this;
    var setAmount = function(amount) {
        scope.amount = amount;
    }
  ........
})();

这样做的目的是在更大的框中创建一个变量,该变量引用回它的范围(在我们的示例中,返回到它自己的框)。因为小盒子在大盒子里面,所以它可以看到范围变量。

想象两个盒子,一个大一个小。小盒子在大盒子里面

小框表示您定义的
setAmount
函数。大框表示封装setAmount函数的闭包

每个盒子只知道它自己的内部和其父外盒的内部

关键字
this
,表示在该框内

小框已经可以看到
金额
,因为它在大框中。如果您在小框中定义
this.amount=something
,则它本质上与说
var amount=something
相同

您还需要小心使用参数名称,因为如果不小心,这只会导致头痛

您遇到的问题是一个范围问题,如果您必须以这种方式命名变量,那么这里有一个解决方案

(function() {
    var amount = 0;
    var scope = this;
    var setAmount = function(amount) {
        scope.amount = amount;
    }
  ........
})();

这样做的目的是在更大的框中创建一个变量,该变量引用回它的范围(在我们的示例中,返回到它自己的框)。因为小盒子在大盒子里面,所以它可以看到范围变量。

想象两个盒子,一个大一个小。小盒子在大盒子里面

小框表示您定义的
setAmount
函数。大框表示封装setAmount函数的闭包

每个盒子只知道它自己的内部和其父外盒的内部

关键字
this
,表示在该框内

小框已经可以看到
金额
,因为它在大框中。如果您在小框中定义
this.amount=something
,则它本质上与说
var amount=something
相同

您还需要小心使用参数名称,因为如果不小心,这只会导致头痛

您遇到的问题是一个范围问题,如果您必须以这种方式命名变量,那么这里有一个解决方案

(function() {
    var amount = 0;
    var scope = this;
    var setAmount = function(amount) {
        scope.amount = amount;
    }
  ........
})();

这样做的目的是在更大的框中创建一个变量,该变量引用回它的范围(在我们的示例中,返回到它自己的框)。因为小框位于大框内,所以它可以看到范围变量。

更改
amount
参数的变量名称这是因为在相同的执行上下文中有两个同名的变量。更改
amount
参数的变量名称此hap