Volledige versie bekijken : variables van functies in methods
eagle
%Europe/Berlin %973 %2006, 00:21
Hoe kan je variablen van een bovenliggende method rechtstreeks aanspreken in een interne functie? Voorbeeldje:
private function eenMethod():Void
{
var test:String = "Halloew";
function eenInterneFunctie():Void
{
//ik wil hier de variable test aanspreken
}
}
(Liefst geen manieren die zich baseren op het definieren van een scope :p )
BernardV
%Europe/Berlin %976 %2006, 00:26
Uhmm.. als ik dit doe is hij er gewoon:
function eenMethod():Void
{
var test:String = "Halloew";
function eenInterneFunctie():Void
{
//ik wil hier de variable test aanspreken
trace(test);
}
eenInterneFunctie();
}
eenMethod();
eagle
%Europe/Berlin %979 %2006, 00:30
Inderdaad, maar het werkt niet als dit wil doen:
private var test:String = "Halloew";
private function eenMethod():Void
{
function eenInterneFunctie():Void
{
//ik wil hier de variable test aanspreken
}
}
BernardV
%Europe/Berlin %984 %2006, 00:37
Ok!
Volgens mij is daar geen oplossing voor, tenminste niet zonder een scope-setting.
Maar waarom zou je ook op deze manier functies willen maken, immers een functie binnen een functie is al bijna een class :P
eagle
%Europe/Berlin %986 %2006, 00:40
Ik vind het mooier, i.e. wanneer je in de method een setInterval aanmaakt.
Dan kan de interne functie uitgevoerd worden door het setInterval, en moet je geen aparte method maken. De interne functie hoort ook bij de method, en beide samen ogen dan beter als geheel.
In alle andere gevallen is het compleet overbodig.
BernardV
%Europe/Berlin %990 %2006, 00:46
Wat ik nog wel eens doe als ik functie in een functie nodig zou hebben op deze manier:
private function mijnMethode():Void
{
}
private function __mijnMethode():Void
{
}
Dan kun je ook redelijk vlot zien dat er een "parent" functie is :)
CremFresh
%Europe/Berlin %381 %2006, 10:08
zo moet het toch werken?
class TestClass{
private var test:String = "Halloew";
function TestClass(){
}
private function eenMethod():Void
{
var local_test = test;
eenInterneFunctie();
function eenInterneFunctie():Void
{
//ik wil hier de variable test aanspreken
trace(local_test);
}
}
}
myVar = new TestClass();
testVar = myVar.eenMethod();
eagle
%Europe/Berlin %440 %2006, 11:34
Dan vink ik BernardV's methode toch de beste :) , thx Bernard.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.