我正在努力使JS對象和訪問私有方法。嘗試返回函數時遇到的問題是私有方法無法訪問。代碼如下。訪問JS私有方法
var Item = (function() {
var price = 0;
var name = '';
var description = '';
var quantity = '';
var attributes = {};
var Item = function(data) {
}
function setPrice(variable) {
this.price = variable;
};
function getPrice() {
return this.price;
};
function setName(variable) {
this.name = variable;
};
function getName() {
return this.name;
};
function setDescription(variable) {
this.description = variable;
};
function setQuantity(variable) {
this.quanity = variable;
};
return function(data){
setPrice : setPrice;
getPrice : getPrice;
setName : setName;
setDescription : setDescription;
setQuantity : setQuantity;
return new Item(data);
}
})();
item2 = Item();
item2.setPrice('3');
alert(item2.getPrice());
使用此設置,我如何訪問私有方法?
爲什麼要加入ss私有方法?他們是私人的原因。 – 2012-03-07 03:12:24
我正在遵循一個名爲Revealing模塊的設計模式。 http://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript – 2012-03-07 03:13:42
該設置沒有多大意義。你從自執行函數返回的函數有一堆標籤,然後評估函數。此外,將'this.'添加到它(在將':'更改爲'='之後)將不會執行任何有用的操作,因爲您在最後返回一個「Item」。 – icktoofay 2012-03-07 03:15:05