2012-04-04 4 views
0

Оказывается, это делает именно то, что я хочу, чтобы он делал. Но HTML не заменяет вызов функции значением, поэтому я запутался. Однако правильное значение IS передается в массив. Я оставляю этот вопрос здесь, если другие имеют такую ​​же проблему.Простой javascript вопрос

У меня есть некоторые JavaScript:

<script type="text/javascript"> 
    var $SAT = $SAT || []; 
    $SAT.push(['setContent','subtype','sub']); 
    $SAT.push(['setUser', '1234']); 
</script> 

, но я хочу, чтобы заменить «суб» с вызовом функции для извлечения значения с помощью других средств, например, так:

<script type="text/javascript"> 
    function getValue() { 
     return 'Some Value'; 
    } 
    var $SAT = $SAT || []; 
    $SAT.push(['setContent','subtype',getValue()]); 
    $SAT.push(['setUser', '1234']); 
</script> 

однако полученный код не заменяет вызов функции getValue() на «Некоторое значение», как я и ожидал. Кто-нибудь знает, почему, и что мне нужно сделать, чтобы исправить это?

Большое спасибо!

+0

вы хотите, чтобы значение быть получены каждый раз, когда вы получаете доступ массива или только один раз, когда вы заполняете массив? – Tom

+3

На самом деле это так, ([Demo] (http://jsfiddle.net/drJhx/)). Может быть, вы поделитесь с нами дополнительным кодом? – Oybek

+3

Ваш код, как опубликовал, делает именно то, что вы хотите. – Pointy

ответ

1

Вот непроверенная идея:

... 
var get_val = function() { 
    return "Hi."; 
}; 
$SAT.push(['setContent', 'subtype', get_val()]); 
// $SAT now has ['setContent', 'subtype', 'Hi.'] 
$SAT.push(['setUser', '1234']); 
... 
+1

Nope. В этом случае вместо значения будет передана ссылка на функцию. – Oybek

+0

Я уже пробовал это. Но безрезультатно. – MichaelS

+0

Да, это только передает ссылку на функцию. Можете ли вы отредактировать, чтобы превратить его в вызов функции? – MichaelS

Смежные вопросы