1. sega_yuu

    Posted

    sega_yuu
Changes in title
+[小ネタ]javascriptのclass constructorの戻り値はオブジェクトのとき上書きできる。
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,26 @@
+``` index.js
+class Test{
+ constructor(){
+ this.a = 12;
+ return {
+ a: 5
+ };
+ }
+}
+class Test2{
+ constructor(){
+ this.a = 12;
+ return true;
+ }
+}
+const test = new Test();
+console.log(test.a); // 5
+
+const test = new Test2();
+console.log(test); // Test2 { a: 12 }
+```
+
+この挙動は[仕様](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/new#Description)ではある。
+が、少なくとも直感的ではない。
+ただしこの挙動はコンストラクタ関数の挙動と全く同じだったりするので、構文糖という意味では一貫性を持っている。
+・・・個人的には何かしらのエラー発してほしかった。それだけ。