美文网首页
object.defineproperty和{}的区别

object.defineproperty和{}的区别

作者: 开船的 | 来源:发表于2018-07-04 13:44 被阅读0次

    var o = {};

    o.a = 1;

    // 等同于 :Object.defineProperty(o, "a", {

      value : 1,

      writable : true,

      configurable : true,

      enumerable : true});

    // 另一方面,

    Object.defineProperty(o, "a", { value : 1 });

    // 等同于 :Object.defineProperty(o, "a", {

      value : 1,

      writable : false,

      configurable : false,

      enumerable : false});

    属性特性 enumerable 定义了对象的属性是否可以在 for…in 循环和 Object.keys() 中被枚举。如果设置false,在循环中该属性将不被取到。

    configurable 特性表示对象的属性是否可以被删除即:delete o.a无效,以及除 writable 特性外的其他特性是否可以被修改,即:o.a=7无效。

    相关文章

      网友评论

          本文标题:object.defineproperty和{}的区别

          本文链接:https://www.haomeiwen.com/subject/aceeuftx.html