Paso 1: 19 "propiedades"para una buena relación con javascript

SOURCE 9135 palabras JavaScript

Problema

var a = {x:2, y:3}
var b = {x:2, y:3}
var c = {x:1, y:2}
JSON.stringify(a)                      //=> "{"x":2,"y":3}"
JSON.stringify(a) == JSON.stringify(b) //=> true
JSON.stringify(a) == JSON.stringify(c) //=> false

var obj = Object.create(
            Object.prototype,
            {
               x: {value:2, writable:true, enumerable:true, configurable:true},
               y: {value:3, writable:true, enumerable:true, configurable:true}
            }
          );
JSON.stringify(a) == JSON.stringify(obj) //=> ?
























Respuesta

JSON.stringify(a) == JSON.stringify(obj) //=> true
Sólo muestra explícitamente las propiedades, así que es verdad.
Además
Obj. Incluso si X se establece en writable: false, JSON.stringify(a) == JSON.stringify(obj), la salida no difiere en JSON.stringify() y por lo tanto se vuelve verdadera.
Las propiedades se pueden comprobar en Object.getOwnPropertyDescriptor(obj, prop).
obj = { x:2, y:3 }
Object.getOwnPropertyDescriptor(obj, 'x') //=> Object {value: 2, writable: true, enumerable: true, configurable: true}