目前在標準JavaScript中關鍵字public
沒有任何意義。
基於原來的代碼片段,我懷疑你的意思是:然後
function myObject(){
this.keyOne=1;
this.keyTwo=2;
this.keyThree=3;
function add(){
return this.keyOne+this.keyTwo+this.keyThree;
}
return {
add: add
};
}
該函數將返回一個對象,它只有一個屬性:add
功能。該對象由關鍵字return
後的對象字面值創建。
但是沒有用this
。你可以寫:
function myObject() {
var keyOne=1;
var keyTwo=2;
var keyThree=3;
function add() {
return keyOne + keyTwo + keyThree;
}
return {
add: add
};
}
甚至更簡潔地說:
function myObject() {
var keyOne=1;
var keyTwo=2;
var keyThree=3;
return {
add: function() {
return keyOne + keyTwo + keyThree;
}
};
}
這有額外的好處,你不需要調用它與new
前綴。這只是創建並返回包含另一個函數的對象的普通函數:
var o = myObject();
alert(o.add());
你可以允許被添加到指定的號碼來電,就像這樣:
function myObject(keyOne, keyTwo, keyThree) {
return {
add: function() {
return keyOne + keyTwo + keyThree;
}
};
}
var o = myObject(5, 4, 7);
alert(o.add());
實現這樣我得到「表達式結果'myObject.add'[undefined]不是函數。」; – mkind 2010-11-29 10:51:18
@mkind - 你有*完全*因爲我有它嗎?你可以從演示中看到這是如何工作的...你的版本可能與答案不同,請仔細檢查:) – 2010-11-29 10:55:36