область видимости
Здравствуйте. Столкнулся с проблемой.
<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, время: 19:40. |