我有这段代码:
var Human=function(name){
this._name=name;
};
Human.prototype.Shout=function(){
alert(this._name);
};
var tom=new Human("tom");
var john=new Human("john");
alert(tom.Shout===john.Shout);
现在 ._name 不是“私人的”。我想将 ._name 设为“私有”,但同时我不希望为 Human 的每个实例创建额外的函数(换句话说,tom.Shout 必须 === 到 john.Shout),因为为每个实例都很好..不必要(好的题外话 - 我们可以在另一个线程上讨论这个)
我的结论是,我想要实现的目标(让 ._name 为“私有”,同时拥有 ._name tom.Shout===john.Shout
)是不可能的。
但我只想在得出任何结论之前有 200% 的把握。
(只要满足要求,我欢迎任何 hack,即不为每个实例创建附加功能)
如果我们必须创建额外的函数来进行范围界定,那很好,但这个数字应该是一个固定的数字,并且这个数字不应该随着 Human 的每个额外实例而增加。