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

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

原创
作者头像
剁椒鱼鳞
修改于 2023-06-07 01:08:12
修改于 2023-06-07 01:08:12
54100
代码可运行
举报
文章被收录于专栏:前端小学生前端小学生
运行总次数: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
7760
JS面试之对象(2)
javaScript 的面向对象程序
数据属性(数据属性包含一个数据值的位置,这个位置可以读取和写入值,数据属性有4描述)
用户1197315
2019/12/30
1.2K0
JavaScript 对象可以做到的三件事
除了普通的对象属性赋值和遍历之外,我们还可以使用 JavaScript 对象执行许多其他操作。在本文中,我们将了解如何使用它们,包括访问内部属性、操作属性描述符和继承只读属性。
前端小智@大迁世界
2020/06/05
8200
javascript 中Object一些操作方法
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
chuchur
2022/10/25
7410
《javascript高级程序设计》笔记:对象数据属性和访问器属性
创建自定义对象最简单的方式就是以字面量的形式创建对象(或创建一个Object实例),然后再为它添加属性和方法,如下所示:
全栈程序员站长
2022/07/20
1.2K0
深入了解对象属性标志以及描述符
到目前为止,属性对我们来说只是一个简单的“键-值”对。但对象属性实际上是一个更灵活和强大的东西。
公众号---人生代码
2021/03/16
5820
ECMAScript5 Object的新属性方法
虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都或多或少的支持了ECMAScript5的新特性,其中重中之重自然是一切对象的基类型——Object。
用户2936342
2018/08/27
8550
ECMAScript5 Object的新属性方法
JS深浅复制
在JS中,存在几个内置属性天然支持数据浅复制,但是每个属性都有一定的适用条件和范围。
前端柒八九
2022/08/25
4.7K0
JS深浅复制
JS 中的 Reflect 和 Proxy
Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。Reflect不是一个函数对象,因此它是不可构造的。Reflect的所有的方法都是静态的就和Math一样,目前它还没有静态属性。
羽月
2022/10/08
1K0
全面梳理JS对象的访问控制及代理反射
在 Javascript 中,读取、赋值、调用方法等等,几乎一切操作都是围绕“对象”展开的;长久以来,如何更好的了解和控制这些操作,就成了该语言发展中的重要问题。
江米小枣
2020/06/16
2.4K1
对象的新增方法
ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。
小小杰啊
2022/12/21
1.2K0
JS面向对象编程
通过instanceof来判断当前的的对象是否是实例化出来的,如果是实例化出来的this指向实例化出来的对象,也就是这里的Person,否则作为普通函数来说当前的this指向window
小丞同学
2021/08/16
4.3K0
js对象的各种方法
这里的create方法是以sourceObj为targetObj的原型对象创建一个新的空对象,我用这个来验证sourceObj是不是targetObj的原型对象,结果为true
y191024
2024/01/31
3660
js对象的各种方法
Js中Reflect对象
Reflect是ES6起JavaScript内置的对象,提供拦截JavaScript操作的方法,这些方法与Proxy对象的handlers中的方法基本相同。
WindRunnerMax
2020/11/26
4.2K0
浅谈JavaScript的面向对象程序设计(一)
  面向对象的语言有一个标志,他们都有类的概念,通过类可以创建多个具有相同属性和方法的对象。但是JavaScript中没有类的概念,因此JavaScript与其他的面向对象语言还是有一定区别的。JavaScript把对象定义为无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或者方法都有一个名字,而每个名字都映射到一个值。所有我把JavaScript的对象看成一组无序的键值对。 对象是什么   以前曾介绍过对象的创建,建立对象最简单的方式就是建立Object对象的一个实例,再为他添加属性和方
水击三千
2018/02/27
7790
初识: 对象的属性特征
众所周知,默认情况下我们可以任意对自己定义的对象进行增删改的。但是,在某些情况下,我们不能让别人去随便修改我们定义的对象的属性,那么我们应该怎么处理呢 ?这就需要了解下对象的属性特征了。
很酷的站长
2022/12/21
1K0
初识: 对象的属性特征
JavaScript权威指南 - 对象
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删。 JavaScript中的所有事物都是对象:字符串、数字、数组、日期,等等。 JavaScript对象除了可以保持自有的属性外,还可以从一个称为原型的对象继承属性。对象的方法通常是继承的属性。这种“原型式集成”是JavaScript的的核心特征。
Esofar
2018/09/05
1.3K0
JS面向对象
表示能否通过delete删除此属性,能否修改属性的特性,或能否修改把属性修改为访问器属性,如果直接使用字面量定义对象,默认值为true
4O4
2022/04/25
8.9K0
ES6系列十四:Proxy
Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。
用户8921923
2022/10/24
1.5K0
JS中属性描述符
属性描述符是ES5中的一个重要的概念。它可以对对象做一些特定的高级操作,今天我们就学习一下ES5中的属性描述符。 ES5中的属性描述符是由Object类的一个静态方法defineProperty来设置的,该方法接收三个参数,分别是:属性操作的对象、属性名和一个属性描述符的对象。我们来看一个简单的例子:
kai666666
2020/10/18
2.6K0
相关推荐
JS面试之对象(2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档