2011-02-04 55 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包裝。這將允許任何擴展該組件的組件訪問它。