在Javascript中的函数之间共享变量

时间:2012-07-13 12:54:08

标签: javascript

我的代码如下:

MyClass = {

   init: function(){
   marker = 0;
   //I call foo() and bar() from here
   },

   foo: function(){
   //I want to access & update marker here
   },

   bar: function(){
   //This function also accesses updates marker
   }
};

我可以通过将其作为参数传递给函数来访问marker但我无法更新它。

那么,我如何管理创建变量marker以便所有三个函数可以共享它?我不想在MyClass之外写任何代码。

2 个答案:

答案 0 :(得分:3)

marker放在MyClass中,而不是放在init中,它现在就在那里。

MyClass = {
   // marker is in MyClass now
   marker: 0,

   init: function(){
      console.log(this.marker);
   //I call foo() and bar() from here
   },

   foo: function(){
   //I want to access & update marker here
   },

   bar: function(){
   //This function also accesses updates marker
   }
};

答案 1 :(得分:0)

var MyClass = {
   marker: 0,

   init: function(){
     this.foo();
     this.bar();
     console.log(marker);
   },

   foo: function(){
     marker = 4;
   },

   bar: function(){
     marker = marker * 2;
   }
};

如果执行MyClass.init(),它将在控制台中打印8。