コンストラクタで宣言されていないプロパティへのセットを防ぎたくていろいろ探してたところ Object.seal 関数 (JavaScript) というのを見つけたので試してみた。 function User() { this.name = undefined; Object.seal(this); } var user = new User(); user.name = 'まどか'; // セットできる user.age = 14; // セットできない console.log(user); // => { name: 'まどか' } いい感じ。 さらにObject.freeze(obj)を使うとwritableがfalseになるので、 書き込み不可なオブジェクトを使いたい場合にはいいかも。 function User(name) { this.name = name; Object.fr