javascriptを勉強中のものなのですが、以下のコードで分からない部分があった為質問させていただきました。
javascript
1var Member = function(firstName, lastName){ 2 this.firstName = firstName; 3 this.lastName = lastName; 4 5 }; 6 var m = Member('権兵衛','佐藤'); 7 console.log(m); //結果:undefined 8 console.log(firstName); //結果:権兵衛 9 console.log(m.firstName); //結果: エラー(Cannot read property 'firstName' of undefined)
上記のコードの説明としまして、「Memberオブジェクトは生成されず、代わりにグローバル変数としてfirstName/lastNameが生成されてしまうのです。(thisがグローバルオブジェクトを示すからです。)」
とあったのですが、Memberオブジェクトが生成されないということは、「 var m = Member('権兵衛','佐藤');」ここの部分でnew演算子を用いてインスタンス化できていないから、ということなのでしょうか?
また、「代わりにグローバル変数としてfirstName/lastNameが生成されてしまう、(thisがグローバルオブジェクトを示すからです。)」ここの部分につきましても、thisがグローバルオブジェクトを示す=グローバル変数として、firstName/lastNameが生成されるのが何故なのかも分からないです。
どなたか教えてくださる方いらっしゃいましたら、ご解説お願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/07 08:30 編集