我在使用 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,所以最后一个sayHello方法调用,将写入相同的输出。
我也尝试过以这种方式更改Person类:
function Person(){
this.setName = function(name){
this.name = name
}
this.getName = function(){
return this.name
}
}
但通过这种方式,它不再是私有的。
实现它的正确方法是什么?