javascript を使用する際に問題が発生し
ました...サブクラスから使用できないクラスでプライベート変数を宣言したい...私が試したのは次のとおりです。
function Person(){
var _name
this.setName = function(name){
_name = name
}
this.getName = function(){
return _name
}
}
function GreetingPerson(){
var self = this;
self.sayHello = function(){
console.log(self.getName() + ': "Hello!"');
}
}
GreetingPerson.prototype = new Person()
GreetingPerson.prototype.contructor = GreetingPerson;
var manuel = new GreetingPerson()
manuel.setName('Manuel');
manuel.sayHello();
var world = new GreetingPerson()
world.setName('World');
world.sayHello();
manuel.sayHello();
console.log(manuel.name)
このようにname変数は private ですが、staticでもあるため、最後の wo sayHelloメソッド呼び出しは同じ出力を書き込みます。この方法で Person
クラス
も変更しようとしました。
function Person(){
this.setName = function(name){
this.name = name
}
this.getName = function(){
return this.name
}
}
しかし、このようにして、それはもはやプライベートではありません。
それを達成する正しい方法は何ですか?