2011-12-20 36 views
0

我正在使用ColdFusion 9.1.2。我是否需要致电扩展CFC或父CFC?

我有一个名为orders.cfm的CFC。这是“父母”CFC。

我有另一个CFC调用orderswrapup.cfc。这是orders.cfc的扩展。在orderswrapup.cfc,我有这条线在顶部:

<cfcomponent extends="orders"> 

眼下,这不起作用:

objOrders = createObject("component", "orders"); 
MyResult = objOrders .someMethodActuallyInOrdersWrapUpCFC(); 

但这并工作:

objOrders = createObject("component", "orderswrapup"); 
MyResult = objOrders .someMethodActuallyInOrdersWrapUpCFC(); 

要访问orderswrapup.cfc中的方法,我可以像调用orders.cfc中的方法那样调用方法,还是需要直接调用它?看来我应该能够打电话给家长,而不是孩子。

回答

7

当您创建新的orderswrapup对象时,orderswrapup可以访问所有订单的功能,因为orderswrapup是订单的孩子。

当您将orderswrapup.cfc定义为<cfcomponent extends="orders">时,您将orderswrapup.cfc定义为继承所有orders.cfc的函数。这允许您通过orderswrapup.cfc调用orders.cfc中的任何函数,就好像它们是orders.cfc中的函数一样。但是orders.cfc与orderswrapup.cfc没有定义的关系,所以它不能调用orderswrapup.cfc

一些好的writeups的内部功能 - http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=buildingComponents_30.html

+0

感谢您的解释! – 2012-01-17 15:31:32

0

扩展的氟氯化碳昂贵...

如果你发现自己需要进行3级以上的延伸,你会注意到性能受到影响。