zoukankan      html  css  js  c++  java
  • javascript中数据属性的一些小结

    数据属性包含一个数据值的位置。在这个位置可以读取和写入值。

    属性特性:
    [[Configurable]]  能不能通过delete伤处属性从而从新定义属性。true
    [[Enumerable]]  能不能通过for-in来喜欢返回属性(prototype不可枚举,不能用for-in)true
    [[Writable]]  能不能修改属性值 true
    [[Value]]  包含这个属性的属性值 undefined
     
    修改属性默认的特性:
    Object.defineProperty() 
    三个参数:属性所在的对象,属性的名字,一个描述对象。
    描述符:是属性特性中的一个或者多个。
     
    小测试:
     1 <script>
     2 //"use strict";
     3 var dada = {
     4      name : "yujianqi",
     5      age : 27,
     6      city : "beijing"
     7 };
     8 Object.defineProperty(dada,"name",{
     9      configurable : true,//能不能通过delete伤处属性从而从新定义属性
    10      writable :false,//能不能修改属性值
    11      enumerable : true,//能不能通过for-in来喜欢返回属性
    12      value : "dada" //包含这个属性的属性值
    13 });
    14 dada.name = "prince";
    15 delete dada.name
    16 for(var a in dada){
    17      alert(a)
    18 }
    19 //alert(dada.name);
    20 </script>

    注意点:

    1.把configurable 属性设置为false表示不能删除属性。如果调用delete,在非严格模式下什么事都没有,但是在严格模式下会报错。
     
    2.而且一但设置了不可配置的属性,就不能再把他变为可以配置 了、在调用Object.defineProperty() 修改除了writable之外的特性都会报错。
     
    3.也就是说,可以在调用Object.defineProperty() 方法修改同一个属性,但在把configurable 设置为false后就会有限制。
  • 相关阅读:
    数1的个数
    找水王2
    书店促销
    返回一个二维整数数组中最大联通子数组的和
    敏捷软件开发读书笔记(三)
    软件工程团队开发——第一次冲刺会议总结
    返回一个二维整数数组中最大联通子数组的和
    结对项目开发电梯调度
    《最后期限》——读书笔记03
    最后期限——阅读笔记2
  • 原文地址:https://www.cnblogs.com/snowinmay/p/3066522.html
Copyright © 2011-2022 走看看