問題
第1問
var obj = {x:2, y:3};
Object.preventExtensions(obj);
Object.freeze(obj);
delete obj.y;
Object.keys(obj); //=> ?
第2問
var obj = {x:2, y:3};
Object.freeze(obj);
Object.preventExtensions(obj);
delete obj.y;
Object.keys(obj); //=> ?
第3問
var obj = {x:2, y:3};
Object.seal(obj);
Object.preventExtensions(obj);
delete obj.y;
Object.keys(obj); //=> ?
答え
第1問
var obj = {x:2, y:3};
Object.preventExtensions(obj);
Object.freeze(obj);
delete obj.y;
Object.keys(obj); //=> ["x", "y"] (freezeの制約になっている)
第2問
var obj = {x:2, y:3};
Object.freeze(obj);
Object.preventExtensions(obj);
delete obj.y;
Object.keys(obj); //=> ["x", "y"] (freezeの制約になっている)
第3問
var obj = {x:2, y:3};
Object.seal(obj);
Object.preventExtensions(obj);
delete obj.y;
Object.keys(obj); //=> ["x", "y"] (sealの制約になっている)
制約の強い方へしか途中で変更できません