如何确定对象x是否具有已定义的属性y,而不考虑x.y的值?

我目前正在使用

if (typeof(x.y) !== 'undefined')

但这似乎有点笨拙.有没有更好的方法?

推荐答案

对象具有以下属性:

如果要测试对象本身(不是其原型链的一部分)的属性,可以使用.hasOwnProperty():

if (x.hasOwnProperty('y')) { 
  // ......
}

对象或其原型具有以下属性:

也可以使用in运算符测试继承的属性.

if ('y' in x) {
  // ......
}

Javascript相关问答推荐

如果使用React Select ,如何将CSS类添加到元素中?

React:如何将表格收件箱正确渲染为表格主体内的组件?

鼠标移动时更新画布

Mongodb拥有5亿个文档,我想根据JavaScript驱动程序中的两个字段使用regEx进行搜索,而不是模式

设置默认值后动态更新japbox或调色板

禁用从vue.js 2中的循环创建的表的最后td的按钮

如何使用JavaScript用等效的功能性HTML替换标记URL格式?

如何找出摆线表面上y与x相交的地方?

如何在angular中从JSON值添加动态路由保护?

colored颜色 检测JS,平均图像 colored颜色 检测JS

为什么promise对js中的错误有一个奇怪的优先级?

有没有可能使滑动img动画以更快的速度连续?

我怎么才能得到Kotlin的密文?

使用Promise.All并发解决时,每个promise 的线性时间增加?

在Java中寻找三次Bezier曲线上的点及其Angular

Web Crypto API解密失败,RSA-OAEP

Puppeteer上每页的useProxy返回的不是函数/构造函数

在不扭曲纹理的情况下在顶点着色器中旋转UV

处理TypeScrip Vue组件未初始化的react 对象

在HTML5画布上下文中使用putImageData时,重载解析失败