Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2013, 15:44
Новичок на форуме
Отправить личное сообщение для worldown Посмотреть профиль Найти все сообщения от worldown
 
Регистрация: 23.07.2013
Сообщений: 5

область видимости
Здравствуйте. Столкнулся с проблемой.


<script>
function fOne(fTwo){           
  var i = 'foo';
  fTwo(i);
}

var mOne = {
  b: '',
  a: fOne(function(result){
  this.b = result;

   })
}

window.onload = function(){
  mOne.a;
  setTimeout('alert(mOne.b)',2000);
}
</script>

В "mOne.b" пустая строка ;
Вопрос: Как передать в "mOne.b" строку "foo" ? Спасибо.

Последний раз редактировалось worldown, 23.07.2013 в 16:16.
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2013, 16:29
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ну так функцию наверное вызвать надо:
fOne(function(result){
  return result;
   }(сюда параметр передаем))
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2013, 16:31
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

хотя честно говоря, у вас черт ногу сломит)) переписывать все надо)
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2013, 16:38
Новичок на форуме
Отправить личное сообщение для worldown Посмотреть профиль Найти все сообщения от worldown
 
Регистрация: 23.07.2013
Сообщений: 5

Спасибо. Простите... Что-то я не понял... Не могли бы поподробней?
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2013, 16:40
Новичок на форуме
Отправить личное сообщение для worldown Посмотреть профиль Найти все сообщения от worldown
 
Регистрация: 23.07.2013
Сообщений: 5

А в чем именно непонятно?, вроде простой код, но вот нифига не перелетает строка 'foo' в свойство mOne.b. Хотя поверьте код рабочий!
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2013, 17:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,633

worldown,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
<script>

function fOne(i){
  this.b = i
}

var mOne = {
  b: '',
  a: fOne
}

window.onload = function(){
  mOne.a('foo');
  setTimeout(function ()
{
  alert(mOne.b)
},2000);
}
</script>
</head>

<body>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 23.07.2013, 19:11
Новичок на форуме
Отправить личное сообщение для worldown Посмотреть профиль Найти все сообщения от worldown
 
Регистрация: 23.07.2013
Сообщений: 5

рони,
спасибо. Но нужно именно реализовать в той конструкции... т.е что бы было
fOne(fTwo){...
Ответить с цитированием
  #8 (permalink)  
Старый 23.07.2013, 19:46
Новичок на форуме
Отправить личное сообщение для worldown Посмотреть профиль Найти все сообщения от worldown
 
Регистрация: 23.07.2013
Сообщений: 5

Всем спасибо. Вот решение:
<script>
function fOne(fTwo){           
  var i = 'foo';
  fTwo(i);
}

var mOne = {
  b: '',
  a: function(){ fOne(function(result){
  this.b = result;
   }.bind(this))
  }
}

window.onload = function(){
  mOne.a();
  setTimeout('alert(mOne.b)',2000);
}
</script>


http://learn.javascript.ru/bind

Последний раз редактировалось worldown, 23.07.2013 в 19:48.
Ответить с цитированием
  #9 (permalink)  
Старый 23.07.2013, 21:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,469

Сообщение от skrudjmakdak
хотя честно говоря, у вас черт ногу сломит))
Сообщение от worldown
Хотя поверьте код рабочий!
Ну да, ну да...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
область видимости kuzroman jQuery 5 09.10.2011 22:17
Область видимости переменной ацкий Общие вопросы Javascript 3 27.08.2011 13:09
область видимости Ultimatum Общие вопросы Javascript 2 19.06.2011 09:47
Область видимости методов mexoboy Общие вопросы Javascript 10 10.08.2010 12:09
можно ли включить функцию в глобальную область видимости из файла maxval Элементы интерфейса 13 04.10.2009 06:11