26

ColdFusion 对象(即通过cfobject 调用的CFC)通常是通过引用传递还是通过值传递(复制到内存中)?是否可以强制 ColdFusion 以任何一种方式传递对象?

4

4 回答 4

30

ColdFusion 对象通过引用传递。没有真正的按值传递对象的方法,但您可以使用 duplicate() 函数创建副本。

于 2008-10-20T19:44:18.307 回答
15

好吧,请记住,在 MX 7 中使用 duplicate() 无法复制某些内容,例如 CFC 和 COM、CORBA 和 Java 对象。不过,您可以在 CF 8 中复制 CFC

于 2008-10-20T20:10:59.767 回答
10

结构和 CFC 等复杂对象通过引用传递,但如果将数组传递给 UDF,则它是通过值传递的。这使得编写一个像内置数组函数那样改变数组的用户定义函数是不可能的。如果你真的需要通过引用传递一个数组,你可以将它包装在一个struct中,然后它会通过引用传递。

于 2008-12-10T20:55:02.930 回答
4

FWIW,数组也在 Railo CFML 引擎中通过引用传递,正如许多开发人员认为的那样。Railo 3.1 还有望提供管理设置以允许您选择默认行为,以实现与 Adob​​e CF 的可选兼容性。

于 2009-06-26T15:41:30.170 回答