2011-02-04 54 views
1

有没有办法通过继承来访问函数,而不需要设置函数对public的访问?ColdFusion中的函数访问

例如:我有Foo.cfc,它扩展了Bar.cfc。如果我想从Foo.cfc调用Bar.cfc函数,则必须将函数访问权限设置为public。

如果我将函数设置为private,那么它只能从Foo.cfc访问。是否没有“中间”访问级别,不是非常公开的,而是严格私人的?即它允许通过继承进行访问...

+0

我犯了一个错误。事实证明,亨利和其他人指出私人方法是可访问的。抱歉虚惊一场。 – Mohamad 2011-02-04 06:28:20

回答

6

您是否正在使用关键字super?因为private methods should be available to sub components喜欢Foo.cfc。

Foo.cfc

<cfcomponent extends="Bar"> 
    ..... 
    <cffunction name="fooMethod" access="public" ...> 
     <cfreturn super.nameOfAMethodInBarCFC() /> 
    </cffunction> 
</cfcomponent>  
+1

甚至不需要“超级”,除非bar中存在“nameOfAMethodInBarCFC”。 – Henry 2011-02-04 03:25:21

+0

是。我总是使用它。那么永远不会有冲突。只是个人喜好。 – Leigh 2011-02-04 03:34:01

+0

+1引用您的来源:) – 2013-04-15 23:00:58

5

如果我设置的功能访问私有,那么它从Foo.cfc

才能访问不是真的! ColdFusion的private访问级别是相同的Java protected,所以你仍然可以调用酒吧的私有方法从富

1

您需要设置访问属性在cffunction包装。这将允许任何扩展该组件的组件访问它。