0

我有如下代码:

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

4

2 回答 2

3

放入markerMyClass,而不是 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
   }
};
于 2012-07-13T12:55:13.397 回答
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。

于 2012-07-13T13:04:34.407 回答