在JavaScript 中實作私有方法
雖然JavaScript 本身不支援類別中私有方法的概念,但有一個解決方法可以實現類似的效果。透過避免在類別的原型中定義私有方法,您可以建立只能在類別的實例中存取的方法。
考慮以下程式碼片段:
<code class="javascript">function Restaurant() { var myPrivateVar; // Private method var private_stuff = function() { myPrivateVar = "I can set this here!"; } // Public methods this.use_restroom = function() { private_stuff(); } this.buy_food = function() { private_stuff(); } }</code>
在此範例中, private_stuff 函數被定義為 Restaurant 函數本身的私有方法。這意味著它只能在 Restaurant 的實例內訪問,不能被外部呼叫。
公共方法use_restroom 和buy_food 都可以存取私有方法private_stuff,允許它們執行特定操作,而無需向用戶暴露實現細節
<code class="javascript">// Create a new instance of Restaurant var restaurant = new Restaurant(); // Call public methods restaurant.use_restroom(); restaurant.buy_food(); // Attempting to call private method externally will fail restaurant.private_stuff(); // Uncaught ReferenceError: private_stuff is not defined</code>
透過採用此解決方法,您可以有效地創建類別的外部使用者無法存取的私有方法,同時允許內部方法與它們互動。但是,需要注意的是,該方法並沒有提供完全封裝,因為私有方法仍然存在於函數作用域中,儘管可訪問性有限。
以上是如何在 JavaScript 中實作私有方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!