知りたいこと
JavaScriptでのコンストラクタの挙動について、ご存知の方がいれば教えてください。
試したこと
以下のコードを実行すると
function Parent() { this.name = 'parent'; } function Child() { this.name = 'child'; Parent.apply(this); } var child = new Child(); console.log(child.name);
コンソールにはparent
が表示されます。
私の理解では、
JavaScriptでは、コンストラクタでreturn文を明記していない場合、暗黙的にthisを返却するものと理解していました。
(そのため、上記コードの実行結果としてはchild
を期待していました)
尚、コードを以下のように変更すると、
function Parent() { this.name = 'parent'; } function Child() { Parent.apply(this); this.name = 'child'; } var child = new Child(); console.log(child.name);
コンソールにはchild
が表示されます。
コンストラクタが暗黙のthisを返す必要条件をご存じの方がいれば、
ご教示ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/18 08:53