我正在努力使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