powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как обратиться к внешнему контексту
5 сообщений из 5, страница 1 из 1
Как обратиться к внешнему контексту
    #38919371
eml78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function DocTask() {
}

DocTask.prototype._checkVal = function() {
};

DocTask.prototype.test = function() {
  function a () {
    _checkVal(); //<<-- здесь нужно вызвать _checkVal
  };
  
  a();
};

var d = new DocTask();
d.test();



Как в таком случае обратиться к функции, которая описана в объекте?
this._checkVal() не работает...
...
Рейтинг: 0 / 0
Как обратиться к внешнему контексту
    #38919396
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eml78,

можно конечно так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function DocTask() {
}

DocTask.prototype._checkVal = function() {
	alert("Here");
};

DocTask.prototype.test = function() {

  function a (doc) {
    doc._checkVal(); //<<-- здесь нужно вызвать _checkVal
  };
  
  a(this);
};

var d = new DocTask();
d.test();
...
Рейтинг: 0 / 0
Как обратиться к внешнему контексту
    #38919447
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
a.call(this)



Тогда в a() можно вызывать this._checkVal()
...
Рейтинг: 0 / 0
Как обратиться к внешнему контексту
    #38919452
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант -- переменная в контексте выше функции a(), в которой помещен this:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
function DocTask() {
}

DocTask.prototype._checkVal = function() {
	alert("Here");
};

DocTask.prototype.test = function() {

  var that=this;

  function a () {
    that._checkVal();
  };
  
  a();
};

var d = new DocTask();
d.test();



Оба варианта не проверял. Теоретик, так сказать.
...
Рейтинг: 0 / 0
Как обратиться к внешнему контексту
    #38921336
eml78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Практическую задачу из которой взят этот упрощенный пример, я решил.
Но решил я ее "не красиво" :( Поэтому и задал вопрос на форуме.
Ответы понятны, спасибо всем, но они как раз из тех самых "некрасивых" вариантов - т.к. нужно явно передавать ссылку на объект.
В ряде языков, можно "проитись" по контексту и добраться до нужного уровня - думал что в js это тоже как-то возможно, но видимо нет... а жаль.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как обратиться к внешнему контексту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]