js对象属性特征

本文详细介绍了JavaScript中对象属性的枚举、配置与写入特性,通过实例展示了如何使用`Object.defineProperty`方法来控制对象属性的行为,并探讨了`enumerable`、`configurable`和`writable`属性的作用。文章还涉及了属性删除尝试的限制与作用域的影响。

enumerabl,configurable,writable,value

(function(){
  'use strict';
  var point={x:1,y:2,z:3};
  Object.defineProperty(point,'x',{
      enumerable:false,//对象属性是否可枚举
      configurable:false //对象属性是否可配置,不能删除,注意值是可以修改的
  });

  delete point.x;//x属性不可配置,所以x属性没有被删除,在严格模式下会抛出错误,非严格模式忽略
  console.log(point);
})();

  

 

var me = {
    name: "xiaowtz"
};

//定义单个属性
Object.defineProperty(me, "name", {
    value: "xiaowtz changed",
    enumerable: true,
    configurable: false,
    writable: false
});

delete me.name; //name不可配置,无法删除

//定义多个属性
Object.defineProperties(me, {
    age: {
        value: 18 //writable,enumerable,configurable没有明确说明,默认false
    },
    hobby: {
        value: [1, 2, 3],
        configurable: false
    }
});

var desc = Object.getOwnPropertyDescriptor(me, "age");
console.log(me, desc);

  

转载于:https://www.cnblogs.com/xiaowtz/p/4508045.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值