【发布时间】:2012-03-07 03:10:07
【问题描述】:
我正在尝试创建一个 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());
通过此设置,我如何访问私有方法?
【问题讨论】:
-
为什么要访问私有方法?它们是私有的是有原因的。
-
我正在遵循一种称为显示模块的设计模式。 addyosmani.com/resources/essentialjsdesignpatterns/book/…
-
这种设置没有多大意义。您从自执行函数返回的函数有一堆标签,然后评估这些函数。此外,将
this.添加到它(在将:更改为=之后)也不会做任何有用的事情,因为你最后会返回一个Item。
标签: javascript jquery dom object