2014-02-13 5 views
1

Я хотел бы написать функцию с подписью какмагазин ссылка на переменную с примитивным значением

broadcast(centerPiece.rotation.y); 

, который хранит переданную переменную и публикует значение в переменной на всех кадрах анимации там после.

Проблема в том, что меня в основном интересуют вещательные примитивные значения, что означает, что вышеприведенная функция захватывает примитивное значение в момент вызова функции и продолжает передавать это фиксированное значение.

В настоящее время я использую этот метод обход

broadcast = function(obj,prop){ 
    doBusinessLogicWith(obj[prop]) 
} 

дает мне довольно уродливую подпись в своем коде, глядя, как

broadcast(centerPiece.rotation,'y'); 

Это в настоящее время работает, потому что повсеместно мне нужно будет только транслировать свойства на объектах , но ... это немного уродливо. Есть ли у меня лучшие возможности для отслеживания переменной истории примитивного значения?

+0

No. только свойства могут быть использованы в качестве ссылок. – Bergi

ответ

1

Один немного менее уродливый вариант может быть передан в ссылку на функцию, которая получает текущее значение. Что-то вроде:

broadcast = function(getValue){ 
    var curVal = getValue(); 
    doBusinessLogicWith(curVal); 
} 

Затем вызовите его:

broadcast(function() 
{ 
    return centerPiece.rotation.y; 
}); 
Смежные вопросы