Coldfusionの動的型付けっぽいトコロ。

知らなかったのですが、試してみたら出来たのでメモ。


以下のようなコンポーネントを定義します。
[TestModule1.cfc]

<cfcomponent output="false">

	<cffunction name="add" access="public" output="false" returntype="numeric">
		<cfargument name="p1" type="numeric" required="true" />
		<cfargument name="p2" type="numeric" required="true" />
		<cfreturn ARGUMENTS.p1 + ARGUMENTS.p2 />
	</cffunction>

</cfcomponent>

[TestModule2.cfc]

<cfcomponent output="false">

</cfcomponent>

Module2は空っぽです。

しかし、これらを利用するコンポーネントの方で以下のようなことをしてあげると。。。

<html>
	<cfoutput>
		<head>
			<title>Test of cffunction</title>
		</head>
		<body>
			<cfset VARIABLES.module1=CreateObject("component", "examples.functest1.TestModule1") />
			<cfset VARIABLES.a=module1.add(1, 2) />
			Result@Module1=[#VARIABLES.a#]
			<br />
			<cfset VARIABLES.module2=CreateObject("component", "examples.functest1.TestModule2") />
			<cfset VARIABLES.module2.add=VARIABLES.module1.add />
			<cfset VARIABLES.b=module2.add(3, 4) />
			Result@Module2=[#VARIABLES.b#]
		</body>
	</cfoutput>
</html>

結果はこのように。

Result@Module1=[3]
Result@Module2=[7]


へー。