переменная «не определено» ошибка, почему - PullRequest
0 голосов
/ 18 апреля 2011

Я определил объект в js-файле:

myobj.js

MyObj={

  test: {
     value: {a: 10, b: 7},

     startTest: function(){
         var x = this.value.a;
         var y = this.value.b;
         return {x: x, y: y};
     }
  }
}

В другом js-файле я вызываю эту функцию объекта:

other.js

mytest = MyObj.test.startTest //assign starTest function to mytest
var a = mytest().x;
var b = mytest().y;

my index.html:

<body>
 <script src="myobj.js"></script>
 <script src="other.js"></script>
</body>

Я получил ошибку от firebug в myobj.js :

"this.value" равно не определено в строка "this.value.a;"

Почему ??

1 Ответ

5 голосов
/ 18 апреля 2011

mytest = MyObj.test.startTest

Это дает вам функцию без контекста. Если вы вызываете эту функцию напрямую, то this равно window.

Вы хотите все test.startTest(), чтобы this было test

Отличный гид по this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...