我使用原型(prototype)函数是因为当“类”被多次实例化时它们应该具有更好的性能。此外,并非所有变量都应该可以从外部访问,因此它们是通过 var
在“类”内部定义的,因此在闭包空间之外的任何地方都无法访问它们。
现在我有一个简单的示例,其中定义了一个“私有(private)”变量并为其定义了 set 和 get 函数。
示例:
function Test() {
var hello = "org";
this._get = function (value) {
hello = value;
}
this._set = function (value) {
return hello;
}
}
var test = new Test();
console.log(test._get());
test._set("new");
console.log(test._get());
fiddler :http://jsfiddle.net/LdwuS/
现在我想对原型(prototype)做同样的事情,但 get 函数总是返回未定义!
示例:
function Test() {
var hello = "org";
}
Test.prototype.set = function (value) {
return hello;
}
Test.prototype.get = function (value) {
hello = value;
}
var test = new Test();
console.log(test.get());
test.set("new");
fiddler :http://jsfiddle.net/rK22m/
我做错了什么或者这是不可能的吗? console.log(test.get());
最佳答案
与原型(prototype)对象关联的函数对对象的访问方式与任何其他函数完全相同。此外,与其他函数一样,它们无法访问构造函数被调用时存在的局部变量。
关于JavaScript:原型(prototype)函数中的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17998107/