JavaScript

[クイズ]javascriptと仲良くなるための一歩 第23話「関数で不変オブジェクト 注意1」

More than 1 year has passed since last update.

問題

第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); //=> ?

:mouse:
:cow:
:tiger:
:rabbit:
:dragon_face:
:snake:
:horse:
:sheep:
:monkey_face:
:bird:
:dog:
:boar:
:mouse:
:cow:
:tiger:
:rabbit:
:dragon_face:
:snake:
:horse:
:sheep:
:monkey_face:
:bird:
:dog:
:boar:

答え

第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の制約になっている)

制約の強い方へしか途中で変更できません:hugging: