zoukankan      html  css  js  c++  java
  • 属性特性

    属性特性:

    • value              属性值
    • writable               可修改值与否
    • enumerable         可列举与否
    • configurable         可删除与否

    propertyName:属性名称,可以自定义,比如常见的name,age

    属性描述对象:包含四大特性的对象

    得到某属性的特性: Object.getOwnPropertyDescriptor(obj, propertyName);

    哪一个对象的哪一个属性

     

    修改某属性特性: Object.defineProperty(obj, propertyName, descriptor)

    哪一个对象   哪一个属性   属性描述符对象

     修改属性特性,就像是给自行车补胎,先找到是哪个自行车,然后找是前胎还是后胎,最后拿出“补胎胶”。

    使用此方法时,如果属性存在,会更新其特性;

    如果属性不存在,通过给定的特性和特性值来创建该属性,没有提供值的特性值默认为false

     

    configurable:

    false:

    1. 不能修改 configurable 标志。
    2. 不能修改 enumerable 标志。
    3. 不能将 writable: false 修改为 true(反过来则可以)。
    4. 不能修改访问者属性的 get/set(但是如果没有可以分配它们)。
    5. 不能删除该属性

    防止修改和删除属性特性,允许修改对象的值value。

    一旦设置为不可设置,就不能再改回来。

     1 let user = {
     2   name: "John"
     3 };
     4 
     5 Object.defineProperty(user, "name", {
     6   writable: false,
     7   configurable: false
     8 });
     9 
    10 // 不能修改 user.name 或它的标志
    11 // 下面的所有操作都不起作用:
    12 user.name = "Pete";
    13 delete user.name;
    14 Object.defineProperty(user, "name", { value: "Pete" });
  • 相关阅读:
    POJ 1251Jungle Roads
    ES6---Class基本语法
    浅谈JS的toString
    为什么用Object.prototype.toString.call(obj)检测对象类型?
    JS输出内容为[object Object]与toString
    Sublime text JsFormat插件的安装
    Sublime Text 无法使用Package Control或插件安装失败的解决方法
    Emmet-前端开发神器
    sublime text 3中文版配置--插件ChineseLocalizations
    vs code相关用法
  • 原文地址:https://www.cnblogs.com/flyover/p/14156389.html
Copyright © 2011-2022 走看看