我正在使用原型函數,因爲當「類」被多次實例化時,它們應該具有更好的性能。也不是所有的變量都應該可以被外部訪問,所以它們是通過var
在「類」內部定義的,所以它們不能在封閉空間外的任何地方訪問。JavaScript:原型函數中的私有變量
現在我有這個簡單的例子,我定義了一個「私人」變量,並定義它並獲取函數。
例子:
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());
提琴手:http://jsfiddle.net/LdwuS/
現在我想要做同樣的原型,但get函數總是返回undefined!
例子:
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");
提琴手:http://jsfiddle.net/rK22m/
我做得不對,或者這是不可能的? console.log(test.get());
不可能從該函數外部定義的函數中訪問函數中定義的變量。這包括'.prototype'上的函數。 –
......並且在第二個例子中,您已將「set」和「get」行爲顛倒過來。 –
ECMAScript 6可能會定義對屬性的「鍵控」訪問,您可以在其中要求該鍵訪問某些屬性,從而提供對象上的私有成員等。 –