Просмотр полной версии : Области видимости переменных
Что-то я почему-то не пойму, что я не так делаю:
var TX = 1
function RECALC( ARG )
{
trace( ARG )
ARG = 100
trace( ARG )
}
RECALC( TX )
trace( TX )
Получаем:
1
100
1
Как мне получить
1
100
100
??? :)
Простые типы передаются по значению, а не по ссылке.
Можно как-нибудь так попробовать.
var TX = 1
function RECALC( ARG )
{
trace( ARG )
ARG.TX = 100
trace( ARG )
}
RECALC( this )
trace( TX )
var TX = 1
function RECALC( ARG ):Number
{
trace( ARG )
ARG = 100
trace( ARG )
return ARG;
}
TX = RECALC( TX )
trace( TX )
var TX:Object = new Object()
TX.field = 1
function RECALC( ARG )
{
trace( ARG )
ARG = 100
trace( ARG )
}
RECALC( TX.field )
trace( TX.field )
1-100-1
Вроде уже не простой тип :) А КАК же правильно написать-то код? :)
var TX:Object = new Object()
TX.field = 1
function RECALC( ARG )
{
trace( ARG )
ARG.field = 100
trace( ARG )
}
RECALC( TX )
trace( TX.field )
Немножко не то что надо. Функций должна пересчитывать произвольное поле в произвольном объекте.
То есть рабоатет вот такое:
var TX:Object = new Object()
TX.field = 1
function RECALC( ARG ){
TX[ARG] = 100
}
RECALC( "field" )
trace( TX.field )
Но тогда вопрос, как передать еще и имя объекта, то есть "TX" ?
Передавайте не имя, а ссылку на сам объект.
Аммм.... а кусочком кода проиллюстрировать? Я что-то совсем запутался уже :)
var TX:Object = new Object()
TX.field = 1
function RECALC(object:Object, ARG:String ){
object[ARG] = 100
}
RECALC( TX, "field" )
trace( TX.field )
Ага! Во. Да. Хм.... Но как-то несколько коряво, нет?
То есть я не в коем случае не критикую, но как-то оно некрасиво выглядит... хм?
Это нормальная практика имено ТАК работать?
Уже просто теоретически интересно :)
Функций должна пересчитывать произвольное поле в произвольном объекте.
Вполне соответствует условию.
Других нормальных способов не знаю.
iflamberg
31.12.2010, 19:14
Нет. Лушче всего, возвращать значение, как в посте #2 у udaaff.
Ага. Все равно спасибо. А то у меня тут разжижение мозгов потихоньку чуть не началось.
Но раз кто-то думает актже как я - мы с ним похожи точь в точь (с)АлисА
:) Спасибо и с НАСТУПАЮЩИМ!
Нет. Лушче всего, возвращать значение, как в посте #2 у udaaff.
Тут еще зависит от задачи. К примеру, если взять те же твины.
нее... у меня собственно практически все как в примере. то есть функция конечно более развесистая, но суть одна - статический блок данных апдейтить. в общем уже все реализовал, сижу набиваю флэшку графикой :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.