• js数据劫持 Object.defineProperty() 作用


    原生js Object.defineProperty() 作用

    假设我们有一个obj对象,我们要给他设置一个name属性会这么做

    Object.defineProperty()也可以设置对象属性
    这个方法有3项值
    项1:需要加属性的对象
    项2:需要改变的属性
    项3:对加的属性值有什么要求

    以上为例,用Object.defineProperty()给它设置一个name属性

    没错,value就是name要改变的值,项3除了value属性还有writable enumerable configurable属性,那么它们几个分别又有什么作用呢?我们一起来看看

    writable enumerable configurable 这三个接受的都是Boolean类型的值

    writable

    可以看到重新改变obj的name属性值,并没有发生任何改变,那我们把writable的值改为true试一下

    这就证明了,writable属性的作用:是否可以重新被赋值,true--可以,false--不可以

    enumerable
    我们获取对象的所有属性是这样做的

    接下来我们添加enumerable属性 值为false 试下

    再改成true试下

    可以发现,enumerable属性的作用:是否被遍历(枚举)出来,true--是,false--否

    configurable
    这个作用是:是否可以被删除
    注:删除对象方法 => delete 要删除的对象
    添加configurable属性 值为false,并删除obj.name属性

    并没有删掉,那么将configurable值改为true试下

    这样就删掉了,configurable作用:是否可以被删掉,true--可以,false--不可以

    项3除了以上4个属性,其实还有get和set方法,但不能和以上4个属性同时出现,否则会报错

    get和set方法的作用:一个是取值时触发(get),一个是设置值时触发(set)

    一起看下效果 我先点击取值按钮

    再点击设置值按钮

  • 相关阅读:
    DLL文件是什么?
    regsvr32的作用是什么?
    win10 解决.net framework 3.5 (安装报错 0x80240438)
    git 常用命令
    Wine使用初体验
    Windows 桌面快捷方式图标变白的问题
    WSL使用初体验/WIN10下安装ubuntu20.04
    Windows 重新安装Microsoft Store/用户无权进入WindowsApps文件夹
    linux命令
    linux命令
  • 原文地址:https://www.cnblogs.com/zlf1914/p/12868910.html
Copyright © 2020-2023  润新知