私は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());
この設定では、どのようにプライベートメソッドにアクセスできますか?
なぜあなたはアクセルしたいですかプライベートメソッドですか?彼らは理由のために私的です。 –
私はRevealing Moduleと呼ばれるデザインパターンに従っています。 http://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript –
その設定はあまり意味がありません。自己実行機能から戻ってくる関数は、束のラベルを持っていて、関数を評価します。さらに、 'this'を'( 'を' = 'に変更した後に)追加すると、最後に' Item'を返すので便利なことはありません。 – icktoofay