Thanks Sean for the usual thorough and low-level help!
On 10/12/07, Sean Corfield <[EMAIL PROTECTED]> wrote:
>
>
> On 10/12/07, Baz <[EMAIL PROTECTED]> wrote:
> > To take this a step further now, if you are mixing in a function into
> other
> > CFCs (by reference), and that function has code to set variables.xyz=123
> ,
> > will that variable be stored in the proper CFC?
>
> Define "proper"...
>
> What you have to remember is that ColdFusion is a dynamic language and
> variable binding (lookup) is done at run time. That means if you have
> the following function:
>
> function getVar(x) { return variables[x]; }
>
> and you call it in a regular CFML page like this:
>
> <cfset variables.foo = 42 />
> <cfset z = getVar("foo") />
>
> z will be 42 - getVar will look up "variables" in the calling context
> (of the page).
>
> Now if you do this:
>
> <cfset obj = createObject("component","MyComponent").init("somedata") />
> <!--- assume .init() stores in variables.data inside the component --->
> <cfset obj.myFunc = getVar />
> <cfset z = obj.myFunc("data") />
>
> z will be "somedata" - getVar() will look up "variables" in the
> calling context which is now the obj CFC...
>
> > Are there any threading
> > issues or potential conflicts with doing this if had, say, 100 objects
> all
> > sharing this function by reference?
>
> That situation already exists in CFCs: there is only one copy of each
> method, no matter how many instances of a CFC you create. So, no,
> there are no threading or conflict issues beyond what already exist.
> --
> Sean A Corfield -- (904) 302-SEAN
> An Architect's View -- http://corfield.org/
>
> "If you're not annoying somebody, you're not really alive."
> -- Margaret Atwood
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CFCDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---