公共方法提供对类功能的外部访问,而私有方法提供类内的隔离操作。 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中文网其他相关文章!