On Saturday, Mar 29, 2003, at 07:52 US/Pacific, Raymond Camden wrote:
> It is true. If in parent.cfc, outside the methods or in a method but 
> not
> var scoped or attribute scoped, if you do x=1, then child.cfc can 
> access
> it as well.

Let's try some real code here because I think some folks have gotten 
confused:

parent.cfc:
<cfcomponent displayname="parent">
        <cfset instance = structNew()>
        <cfset instance.x = "Parent X">
        <cffunction name="parentMethod" returntype="string">
                <cfreturn this.myChild.getInstanceX()>
        </cffunction>
</cfcomponent>

child.cfc:
<cfcomponent displayname="child">
        <cffunction name="getInstanceX" returntype="string">
                <cfdump var="#instance#">
                <cfreturn instance.x>
        </cffunction>
</cfcomponent>

pc.cfm:
<cfoutput>
<cfset p = createObject("component","parent")>
<cfset c = createObject("component","child")>
<cfset p.myChild = c>
<cfset instance = structNew()>
<cfset instance.x = "The Calling Page X">
#p.parentMethod()#
</cfoutput>

Now, *if* child (composition) objects can access their parent 
(enclosing) objects' non-public variables, this should dump an 
'instance' struct containing 'x' and print "Parent X". Which it doesn't 
because a child (composition) object *cannot* see any of the enclosing 
object's data.

Run it - it says "Variable INSTANCE is undefined." inside child.cfc.

Hope that clarifies?

If we were talking about inheritance then, yes, the derived object has 
access to all of the base object's data - because CFML has only a 
public scope ("this") and a protected scope (unnamed).

Sean A Corfield -- http://www.corfield.org/blog/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Get the mailserver that powers this list at http://www.coolfusion.com

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to