公共方法提供對類別功能的外部訪問,而私有方法提供類別內的隔離操作。 JavaScript 本身並不支援私有方法,但創新的方法可以模仿這個概念。
考慮以下場景:
<code class="javascript">function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here } Restaurant.prototype.use_restroom = function(){ // something here }</code>
在此範例中,buy_food 和 use_restroom 都是外部可存取的公共方法班級。我們如何引入一個只有這些公共方法才能呼叫的私有方法?
JavaScript 缺乏真正的私有方法,但它允許我們在類別建構子中建立本地函數無法從外部存取。具體方法如下:
<code class="javascript">function Restaurant() { var myPrivateVar; var private_stuff = function() { // Only visible inside Restaurant() myPrivateVar = "I can set this here!"; } this.use_restroom = function() { // use_restroom is visible to all private_stuff(); } this.buy_food = function() { // buy_food is visible to all private_stuff(); } }</code>
在此範例中,private_stuff 是 Restaurant 建構函式中的本地函式。它不是原型的一部分,只能透過 use_restroom 和 buy_food 方法存取。
這種方法保持了公共和「私有」方法之間所需的分離,同時允許後者在類別中無縫運行。
以上是如何在 JavaScript 中模擬私有方法來增強封裝性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!