为什么我们需要创建CFC的实例?

vol*_*one 2 coldfusion

我正在使用该CreateObject()方法创建CFC的实例,然后与这个新创建的"实例"进行交互.我这样做是因为它似乎是这样做的,但我不明白为什么我们这样做.

为什么我们不能直接与CFC交互而不是创建它的实例?

Ada*_*ron 5

CFC只是一个包含一些代码的文件,所以建议与它"交互"是没有意义的,就像你建议与CFM文件"交互"一样没有<cfinclude>它或类似的东西.

CFC定义一个组件,并使用一个组件,创建一个组件的实例.在某些语言中 - 例如Java - 可以拥有静态属性和方法,并且可以通过类而不是必需对象访问它们,但CFML没有这个概念.CFC定义了用作对象的组件,与其他语言中的组件相同,类定义了它作为对象的内容,并且要使用对象,首先需要创建它的实例.

  • 如果您在页面上多次调用该组件,则每次都会浪费资源创建它. (6认同)
  • @volumeone` <cfinvoke>`仍然会创建一个实例,它只是在使用后立即丢弃它.使用`createObject()`或`new`的另一个好处是,代码对于维护代码的人来说看起来并不那么奇怪,而这些代码可能不是那么自以为什么以标签为中心的CFML做某些方式的特性.这些东西.IE:`<cfinvoke>`是一种非常血腥的方法,可以调用对象上的方法,与`myResult = myObj.myMethod()相比较 (3认同)