###前提・実現したいこと
ここに質問し
プログラミング初心者のものです。
下記のコードが「階層を持った名前空間の定義」の例として紹介されていたのですが、不明点がいくつかあります。
parent = parent[names[i]]でwindowオブジェクトを書き換えていると思うのですが、forループの二回目以降、parent が parent.Wings.Gihyoへと変わる動きがよくわかりません parent['Wings'] は無条件でparent.Wingsと同じものと解釈できるのでしょうか?
また、
var my = namespace('Wings.Gihyo.js.MyApp');
my.Person = function(){};
var p = new my.person();
console.log(p instanceof Wings.Gihyo.Js.MyApp.Person)
について、my.person()のインスタンスを作っているのはなぜでしょうか?
よろしくお願いいたします。
エラーメッセージ
###該当のソースコード
<script> function namespace(ns){ var names = ns.split('.'); var parent = window; for(var i = 0,len = names.length;i < len; i++){ parent[names[i]] = parent[names[i]] || {}; parent = parent[names[i]]; } return parent } var my = namespace('Wings.Gihyo.js.MyApp'); my.Person = function(){}; var p = new my.person(); console.log(p instanceof Wings.Gihyo.Js.MyApp.Person) </script>
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー