问题标签 [hasownproperty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 什么时候不需要`hasOwnProperty`?
什么时候hasOwnProperty
不需要?
这本书JavaScript: The Good Parts包括以下内容,即“通常是必要的”:
另一种形式(称为
for in
)枚举对象的属性名称(或键)。在每次迭代中,来自对象的另一个属性名称字符串被分配给 变量。通常需要测试对象。
hasOwnProperty(
变量)
来确定属性名称是真正的对象成员还是在原型链上找到的。
更具体地说,我想枚举一个简单的类字典对象的属性,该对象是使用 Javsacript 对象文字语法创建的,例如:
或使用以下方法创建的类似对象JSON.parse
:
我应该在对象上使用hasOwnProperty
时使用吗?for in
foo
假设这个 javascript 作为复杂网页的一部分在随机浏览器中运行。
答案是,“在实践中可能/通常没有必要。理论上,如果某些框架或库通过更改添加属性可能是必要的Object.prototype
,但Object.prototype
这样的更改将是一种侵入性的不良做法,任何受人尊敬的框架都不太可能这样做“?
javascript - 当 hasOwnProperty() 为 false 时遍历继承的对象属性
我一直在测试 JavaScript 的Object.prototype.hasOwnProperty
. 据我了解,它旨在从继承的对象属性中清除直接对象属性。
但是,在迄今为止我测试过的人为示例(包括MDN自己的示例)中,我在控制台记录继承属性(即toString
)时.hasOwnProperty()
没有成功false
,这让我对其功能有点怀疑。所以,
1)您能否提供我可以在控制台中运行的示例代码,它会在hasOwnProperty()
返回时记录继承的属性false
?
2)当向这个问题添加hasOwnProperty标签时,弹出的SO描述状态“ ......不遍历原型链”。如果是这样的话,下面 Mozilla 的例子有什么意义,因为 "else 子句永远不会被执行?
这是 Mozilla 的示例代码:
javascript - 如何区分函数中一起传递的属性和值
我需要检查数组中的对象是否包含属性,如果是,属性的值是否匹配。
属性和值在函数调用中一起给出:
函数定义:
无论如何我都找不到将属性与值分开(它们都在内部source
),以便我可以首先检查属性是否存在,hasOwnProperty
如果存在,然后比较值。
javascript - 动态使用 hasOwnProperty 处理错误'无法读取未定义的属性'...'
我收到错误
无法读取未定义的属性“帐单日期”
这里的分期付款未定义
我想以动态方式使用 hasOwnProperty,就像我将路径和对象(要检查)传递给函数一样,它会执行以下检查并返回 true 或 false。
路径长度/键可以变化。
代码必须经过优化和通用。
roles - 如何在 Power BI 开发中访问 columns.roles?
无法在线找到此答案,因此决定发布问题然后发布答案。
我在 capabilities.json 文件中创建了一个表:
我意识到我不能简单地设置,例如,来自第一个类别的图例数据,因为第一个类别来自用户拖入的第一条数据,无论位置如何。因此,例如,如果他们在 Power BI 中在线设置了一堆不同的数据,然后删除了一个,那么一切的顺序就会变得一团糟。我认为解决此问题的最佳方法是确定每列的角色并从那里开始。
当您单击显示 Dataview 时,层次结构清楚地显示:
所以我想我可以像这样访问它:
但事实并非如此。我在命令提示符下使用 pbiviz start 进行编译,这给了我一个错误:
为什么我不能以这种方式访问它?我在想,因为角色本身不包含属性roleIwant,这是真的,但这没关系......
javascript - SpeechRecognitionAlternative 对象的属性为什么不是它自己的?
下面是我如何使用Web Speech API进行语音识别的简单演示。如果您自己运行演示,只需在授予麦克风权限并观看控制台后说些什么:
至少在 Chrome 中(只有 webkitty 浏览器可以工作),我在控制台中得到了这两个输出(一个对象和预期的布尔值):
但我希望看到true
,而不是false
因为我会这么想transcript
并且confidence
会通过hasOwnProperty
检查。他们为什么不呢?
typescript - 打字稿:object.hasOwnProperty() 在继承的属性上显示为 true。为什么?
如果我理解正确,object.hasOwnProperty()
应该在父类的继承属性上返回 false。但是,以下代码对自己的属性和继承的属性都返回 true。
我的理解/代码是不正确还是hasOwnPropery()
不正确?如果是我,如何区分自己的财产和继承的财产?
编辑:我已将我的用例添加到示例代码中。
我希望孩子fromDb()
只会处理自己的属性,相反,它会覆盖父级设置的属性fromDb()
。
安慰:
javascript - 为什么 hasOwnProperty('toString') 不适用于对象?
我最近看了一个指南,想更好地理解 hasOwnProperty 的概念。
根据 Mozilla:
“hasOwnProperty() 方法返回一个布尔值,指示对象是否具有指定的属性作为自己的(不是继承的)属性。”
我创建了一个对象
然后做了
它返回错误。这是因为 toString 是我没有在测试中创建的方法,对吗?
但是如果我将 hasOwnProperty 记录到一个数组并传递长度,那么
它返回 true,但我从未声明长度。
我认为 hasOwnProperty 仅适用于未继承的属性-
那么为什么当数组对象继承长度属性时,在数组上使用 hasownprop('length') 会返回 true,
但
为什么^这会返回假?toString 是对象原型上的方法,当我将它登录到 Google Chrome 控制台时看到它
javascript - 卡在我的游戏的 javascript 函数上
所以我正在创建一个函数来接受两个参数,
- 第一个参数是人名
- 第二个是他们已经捐赠了多少。
每个人都被分配到一个数组中,具体取决于他们期望捐赠多少。变量中的人
- a 预计捐赠6个,
- b 应该捐出 5 和
- c 捐赠 4。
我希望该函数返回个人应该进行多少捐款,但问题是:无论我在控制台日志中输入什么名称,它始终假定此人来自 var a。我在这里错过了什么吗?
javascript - hasOwnProperty 具有多个属性
我试图发现一个对象是否具有某些属性并且我在使用 hasOwnProperty 方法时遇到了问题。
我在数组上使用该方法(我知道文档说明了一个字符串)。
以下行返回 true:
此行也返回 true:
但是这个返回false:
我需要它返回true。我正在使用 Object.keys(object) 来获取我正在使用的属性,它返回一个数组,所以我需要在 hasOWnProperty 上使用一个数组。
我缺少一些理论概念吗?有没有办法解决这个问题?