[puzzle] el primer paso para mejorar la relación con javascript es "objetivar con la función invariante ~ object.prevent extensions ~".

SOURCE 6932 palabras JavaScript

Problema

var obj = {x:2, y:3};
Object.preventExtensions(obj);

obj.z = 4;
Object.keys(obj); //=>?

delete obj.y;
Object.keys(obj); //=>?

obj.x = 20;
obj.x; //=>?
























Respuesta

var obj = {x:2, y:3};
Object.preventExtensions(obj);

//プロパティ追加はできない
obj.z = 4;
Object.keys(obj); //=>["x", "y"]

//プロパティ削除は可能
delete obj.y;
Object.keys(obj); //=>["x"]

//プロパティ値変更は可能
obj.x = 20;
obj.x; //=> 20