область видимости
Здравствуйте. Столкнулся с проблемой.
<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" ? Спасибо. |
ну так функцию наверное вызвать надо:
fOne(function(result){ return result; }(сюда параметр передаем)) |
хотя честно говоря, у вас черт ногу сломит)) переписывать все надо)
|
Спасибо. Простите... Что-то я не понял... Не могли бы поподробней?
|
А в чем именно непонятно?, вроде простой код, но вот нифига не перелетает строка 'foo' в свойство mOne.b. Хотя поверьте код рабочий!
|
worldown,
:write: <!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> |
рони,
спасибо. Но нужно именно реализовать в той конструкции... т.е что бы было fOne(fTwo){... |
Всем спасибо. Вот решение:
<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 |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 15:31. |