我是否呼叫扩展CFC或父CFC?

时间:2011-12-20 17:38:05

标签: coldfusion cfc

我正在使用ColdFusion 9.1.2。

我有一个名为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中的方法,我可以调用该方法,就好像它是“in”orders.cfc一样,还是我需要直接调用它?看来我应该能够打电话给父母,而不是孩子。

2 个答案:

答案 0 :(得分:7)

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

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

一些好的文章 - http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=buildingComponents_30.html

答案 1 :(得分:0)

扩展cfcs很昂贵......

如果您发现自己需要超过3个级别的扩展,您将开始注意到性能受损。