JavaScript对象属性设置和屏蔽技巧

 更新时间:2023年02月06日 11:28:13   作者:rdwalker  
这篇文章主要为大家介绍了JavaScript对象属性设置和屏蔽技巧,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

了解了获取对象属性的基本方式,在当前对象中不存在的属性,会沿着对象的原型链不断往上查找目标属性,直至找到或到Object.prototype都不存在而结束查找。

思考如下代码:

myObject.foo = 100

当我们设置对象的某个属性,也可能会出现类似的问题。

有几种情况:

  • 当前对象存在,原型链对象不存在
  • 当前对象存在,原型链对象也存在
  • 当前对象不存在,而原型链对象中存在
  • 都不存在:当前对象和原型链各对象中都不存在设置属性

我们先来说下最常见,也最简单的场景:

属性仅存在于当前对象中,而原型链中不存在,且属性在对象中是可写的,那需要做的仅仅是赋值操作,改变属性值即可。

还有种情况,处理方式也比较简单:当前对象和原型链上都不存在该属性,且是可写的,那会在最底层,也就是当前对象新增这个属性,并赋值。

如果在当前对象和原型链中都存在,就会发生屏蔽,会优先选择最底层对象属性。也就是说只要当前对象属性可以被赋值,那就对当前对象属性值进行操作;如果原型链对象上的该属性是被设置了可读,那当前对象并未进行修改,则不可操作,严格模式下,还会报错。

最后一种情况,如果属性不存在与当前对象而仅出现在原型链对象中,属性均可写,那会如何呢?

思考如下代码:

const myObject = {
  foo: 100
}
const createObject = Object.create(myObject)
createObject.foo = 200
console.log(myObject.foo, createObject.foo) // 100 200

正常来说,如果没有createObject.foo操作,则createObject对象是空的,不存在foo属性,赋值操作后,从打印的结果可以看出,它会给当前新对象创建新属性并赋值,且原型指向的对象不会受当前对象赋值的影响。

以上就是JavaScript对象属性设置和屏蔽的小技巧内容,更多关于JavaScript对象属性设置屏蔽的资料请关注脚本之家其它相关文章!

相关文章

  • jquery form表单获取内容以及绑定数据

    jquery form表单获取内容以及绑定数据

    这篇文章主要介绍了jquery form表单获取内容以及form表单绑定数据,获取表单的数据保存到数据库,或者将数据绑定到form表单,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 10个JavaScript中易犯小错误

    10个JavaScript中易犯小错误

    10个JavaScript中易犯小错误,需要大家注意!
    2016-02-02
  • 原生JS实现简单计算器功能

    原生JS实现简单计算器功能

    这篇文章主要为大家详细介绍了原生JS实现简单计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 深入浅析JavaScript中的in关键字和for-in循环

    深入浅析JavaScript中的in关键字和for-in循环

    这篇文章主要介绍了JavaScript中的in关键字和for-in循环,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • uni-app使用swiper实现轮播图的方法

    uni-app使用swiper实现轮播图的方法

    做音乐播放器小程序时,因为swiper的问题耽误不少时间,所以下面这篇文章主要给大家介绍了关于uni-app使用swiper实现轮播图的相关资料,需要的朋友可以参考下
    2022-11-11
  • JavaScript中的值类型详细介绍

    JavaScript中的值类型详细介绍

    这篇文章主要介绍了JavaScript中的值类型详细介绍,本文讲解了Primitive、Object、JS自带全局对象、Immutable与Mutable等内容,需要的朋友可以参考下
    2014-12-12
  • js实现功能比较全面的全选和多选

    js实现功能比较全面的全选和多选

    本文主要分享了js实现功能比较全面的全选和多选的示例代码,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 浅谈让你的代码更简短,更整洁,更易读的ES6小技巧

    浅谈让你的代码更简短,更整洁,更易读的ES6小技巧

    这篇文章主要介绍了浅谈让你的代码更简短,更整洁,更易读的ES6小技巧,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Bootstrap table使用方法记录

    Bootstrap table使用方法记录

    这篇文章主要为大家详细介绍了Bootstrap table的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Bootstrap modal使用及点击外部不消失的解决方法

    Bootstrap modal使用及点击外部不消失的解决方法

    这篇文章主要为大家详细介绍了Bootstrap modal使用及点击外部不消失的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论