質問: "newvalue"; // 出力結果 console.log(Hello.obj); // {"key": "newvalue"} console.log(Hello.getObj()); // {"key": "newvalue"} ``` ですので、最初のオブジェクトを上書きしてしまう方法では、モジュール内のobjと参照が切れてしまうということなのでしょうか?? また、参照が切れないようにobj変数をオブジェクトで上書きする方法はありますでしょうか??(setメソッドを用意すれば解決できると思いますが、イコールでオブジェクトを上書きできるように、モジュールを定義する方法があれば教えていただきたいです) ご回答よろしくお願いいたします。
回答: > > 最初のオブジェクトを上書きしてしまう方法では、モジュール内のobjと参照が切れてしまうということなのでしょうか?? > > > はい、そのとおりです。`Hello.obj = {"key": "newvalue"};`と書くと、リテラルで生成した**新しいオブジェクト**を代入することになり、元の`obj`とは別なオブジェクトになってしまいます。 > > 参照が切れないようにobj変数をオブジェクトで上書きする方法はありますでしょうか?? > > > いちばん手っ取り早いのは、`getObj()`が`Hello.obj`を返すようにしてしまう方法です(もっとも、それが意図したとおりの動作なのかわからない部分はありますが)。