私はこのコードを持っています:
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を「プライベート」にすると同時にtom.Shout===john.Shout
)は不可能であるということです。
しかし、結論に飛び込む前に、200%確実になりたいと思っています。
(要件が満たされている限り、つまりインスタンスごとに追加の関数を作成しない限り、ハッキングを歓迎します)
スコープを実行するために追加の関数を作成する必要がある場合、それは問題ありませんが、その数は固定数である必要があり、Humanのインスタンスが追加されるたびにその数が増えることはありません。