2017-01-23 8 views
-1

こんにちは私は閉鎖でプライベート変数を作る方法を学んでいました。読書には問題ありませんでしたが、変数を変更しようとすると定義されませんが、なぜですか?閉鎖を伴うプライベート変数

var myMoney=(function somePrivateElements(){ 
    var money=23; 

    return { 
      getMoney: function(){ return money}, 
      setMoney: function(newMoney){money = newMoney;} 
    } 
})(); 

    console.log(myMoney.getMoney()); //23 
    console.log(myMoney.setMoney()); //say it is undefined 

UPDATE:

私の間違いは何も返さないsetMoney
setMoney {money = newMoney; return money}

+1

なぜ 'this.money'ですか?それは「お金」とは異なるものです。 – deceze

+0

また、誰がいつどこで未定義であると言いますか? – deceze

+0

this.moneyも削除しました。それもうまくいきません。 – Samy

答えて

2

myMoney.setMoneyにここにありました。それは値を受け入れ、それを設定するので、getMoneyの次の呼び出しは更新された値を持つでしょう。

また、this.moneyを設定していますが、this.moneymoneyと同じではありません。あなたはちょうどmoney = newMoneyがほしいでしょう。

+0

thxそれは間違いだった – Samy