[dellajs] Della.JS Javascript第5版読書会#4のlog

第4回はVISH株式会社 会議室にて行われました。aodagさん会場提供ありがとうございました!

9.1 コンストラクタ

function Rectangle(w, h) {
    this.width = w;
    this.height = h;
    return 0;
}

var rect1 = new Rectangle(2,4);
var rect2 = Rectangle(2,4);
print(rect1, rect1.width);
print(rect2, rect2.width);

結果

[object Object] 2
0 undefined

new演算子で呼んだときはreturnは無視されるんだなって理解した。
ここまではいい。ちょっと書き換えてreturnでobjectが返るように変更してみる。

function Rectangle(w, h) {
    this.width = w;
    this.height = h;
    return {};
}

var rect1 = new Rectangle(2,4);
var rect2 = Rectangle(2,4);
print(rect1, rect1.width);
print(rect2, rect2.width);

結果

[object Object] undefined
[object Object] undefined

ええーってな感じになる。オブジェクトを返すとreturn無視しない。
みんなで終止この話題で盛り上がったんだけど結局解決しなかった。

第5回は8/2に開催されます。もう第5回かぁ。