[英]Accessing JS Private Methods
我正在嘗試制作一個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());
使用此設置,如何訪問私有方法?
我認為該模式無法滿足您的需求。 我認為使用這樣的模式將使您的代碼更小,更可重用。 這樣,您還可以擺脫set
功能。
var Item = function(options) {
var opts = $.extend({
price: 0,
name: '',
description: '',
quantity: '',
attributes: {}
}, options);
// ...
this.getPrice = function() {
return opts.price;
};
// ...
};
var item = new Item({
price: 100,
name: 'onehundred',
// ...
});
alert(item.getPrice());
在此處修復了您的代碼: http : //jsfiddle.net/pratik136/JryAk/
項目已更改:
return
單 Item
是一個item2
,您試圖實例化一個類對象item2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.