Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何判断对象里有某个属性

如何判断对象里有某个属性

原创
作者头像
剁椒鱼鳞
修改于 2023-06-07 01:08:12
修改于 2023-06-07 01:08:12
50300
代码可运行
举报
文章被收录于专栏:前端小学生前端小学生
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const d = {};
Object.defineProperties(d, {
    name: {
        value: "Locky",
        writable: false,
        enumerable: false,
        configurable: false,
    },
})
  • in

缺点:可以拿到原型上的属性和方法

'age' in d ➡️ false

'name' in d ➡️ true

'valueOf' in d ➡️ true

  • hasOwnProperty

d.hasOwnProperty('age') ➡️ false

d.hasOwnProperty('name') ➡️ true

d.hasOwnProperty('valueOf') ➡️ false

  • Reflect.has

缺点:可以拿到原型上的属性和方法

Reflect.has(d, 'age') ➡️ false

Reflect.has(d, 'name') ➡️ true

Reflect.has(d, 'valueOf') ➡️ true

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JS面试之对象(2)
new的作用: 1.创了一个新对象; 2.this指向构造函数; 3.构造函数有返回,会替换new出来的对象,如果没有就是new出来的对象
火狼1
2019/04/17
7470
JS面试之对象(2)
浅谈JavaScript的面向对象程序设计(一)
  面向对象的语言有一个标志,他们都有类的概念,通过类可以创建多个具有相同属性和方法的对象。但是JavaScript中没有类的概念,因此JavaScript与其他的面向对象语言还是有一定区别的。JavaScript把对象定义为无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或者方法都有一个名字,而每个名字都映射到一个值。所有我把JavaScript的对象看成一组无序的键值对。 对象是什么   以前曾介绍过对象的创建,建立对象最简单的方式就是建立Object对象的一个实例,再为他添加属性和方
水击三千
2018/02/27
7640
ECMAScript5 Object的新属性方法
虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都或多或少的支持了ECMAScript5的新特性,其中重中之重自然是一切对象的基类型——Object。
用户2936342
2018/08/27
8280
ECMAScript5 Object的新属性方法
JavaScript 对象可以做到的三件事
除了普通的对象属性赋值和遍历之外,我们还可以使用 JavaScript 对象执行许多其他操作。在本文中,我们将了解如何使用它们,包括访问内部属性、操作属性描述符和继承只读属性。
前端小智@大迁世界
2020/06/05
7900
对象的新增方法
ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。
小小杰啊
2022/12/21
1.1K0
深入了解对象属性标志以及描述符
到目前为止,属性对我们来说只是一个简单的“键-值”对。但对象属性实际上是一个更灵活和强大的东西。
公众号---人生代码
2021/03/16
5630
JS深浅复制
在JS中,存在几个内置属性天然支持数据浅复制,但是每个属性都有一定的适用条件和范围。
前端柒八九
2022/08/25
4.5K0
JS深浅复制
javaScript 的面向对象程序
数据属性(数据属性包含一个数据值的位置,这个位置可以读取和写入值,数据属性有4描述)
用户1197315
2019/12/30
1.2K0
《javascript高级程序设计》笔记:对象数据属性和访问器属性
创建自定义对象最简单的方式就是以字面量的形式创建对象(或创建一个Object实例),然后再为它添加属性和方法,如下所示:
全栈程序员站长
2022/07/20
1.1K0
js对象的各种方法
这里的create方法是以sourceObj为targetObj的原型对象创建一个新的空对象,我用这个来验证sourceObj是不是targetObj的原型对象,结果为true
y191024
2024/01/31
2950
js对象的各种方法
Javascript对象
《JavaScript高级程序设计学习笔记》之Javascript对象。 面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念 而通过类可以创建任意多个具有相同属性和方法的对象。 ECMAScript没有类的概念,因此它的对象也与机遇类的语言中的对象有所不同 ES6新增了对象Class的语法糖,这里不讨论ES6
epoos
2022/06/06
4560
javascript 中Object一些操作方法
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
chuchur
2022/10/25
7260
全面梳理JS对象的访问控制及代理反射
在 Javascript 中,读取、赋值、调用方法等等,几乎一切操作都是围绕“对象”展开的;长久以来,如何更好的了解和控制这些操作,就成了该语言发展中的重要问题。
江米小枣
2020/06/16
2.3K1
初识: 对象的属性特征
众所周知,默认情况下我们可以任意对自己定义的对象进行增删改的。但是,在某些情况下,我们不能让别人去随便修改我们定义的对象的属性,那么我们应该怎么处理呢 ?这就需要了解下对象的属性特征了。
很酷的站长
2022/12/21
9710
初识: 对象的属性特征
JS 中的 Reflect 和 Proxy
Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。Reflect不是一个函数对象,因此它是不可构造的。Reflect的所有的方法都是静态的就和Math一样,目前它还没有静态属性。
羽月
2022/10/08
1K0
JS面向对象编程
通过instanceof来判断当前的的对象是否是实例化出来的,如果是实例化出来的this指向实例化出来的对象,也就是这里的Person,否则作为普通函数来说当前的this指向window
小丞同学
2021/08/16
4.2K0
JavaScript权威指南 - 对象
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删。 JavaScript中的所有事物都是对象:字符串、数字、数组、日期,等等。 JavaScript对象除了可以保持自有的属性外,还可以从一个称为原型的对象继承属性。对象的方法通常是继承的属性。这种“原型式集成”是JavaScript的的核心特征。
Esofar
2018/09/05
1.2K0
了解JavaScript对象的特殊属性
看实例,允许直接通过该方法定义属性并直接指定对应的特殊值,若没指定的特殊值则按false ,要想让默认值为 true,需要用字面量或 new Object() 来创建
努力的Greatiga
2022/07/25
8410
JavaScript 对象所有API解析【2020版】
近日发现有挺多人对对象基础API不熟悉,举个开发中常见的需求,经常会有类似的封装http到原型Vue.prototype,一般人是这样封装的,但容易被篡改。
前端迷
2020/02/26
1.1K0
【前端基础进阶】JS-Object 功能详解
该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性,不拷贝继承的属性。 Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。同名属性会替换。
super.x
2019/04/12
1.7K0
【前端基础进阶】JS-Object 功能详解
相关推荐
JS面试之对象(2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验