gpt4 book ai didi

JavaScript 私有(private)方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:28:26 24 4
gpt4 key购买 nike

要使用公共(public)方法创建 JavaScript 类,我会执行以下操作:

function Restaurant() {}

Restaurant.prototype.buy_food = function(){
// something here
}

Restaurant.prototype.use_restroom = function(){
// something here
}

这样我类(class)的用户就可以:

var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();

如何创建一个私有(private)方法,该方法可以由 buy_fooduse_restroom 方法调用,但不能由该类的用户从外部调用?

换句话说,我希望我的方法实现能够执行以下操作:

Restaurant.prototype.use_restroom = function() {
this.private_stuff();
}

但这应该行不通:

var r = new Restaurant();
r.private_stuff();

如何将 private_stuff 定义为私有(private)方法,以便这两个方法都成立?

我已阅读 Doug Crockford's writeup几次了,但似乎公共(public)方法不能调用“私有(private)”方法,外部也不能调用“特权”方法。

最佳答案

你可以做到,但缺点是它不能成为原型(prototype)的一部分:

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();
}
}

关于JavaScript 私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56797968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com