问题标签 [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.

0 投票
4 回答
184 浏览

javascript - 有没有办法从改变 Object.prototype.hasOwnProperty 的人那里恢复?

你总是读到 for-in 循环应该检查o.hasOwnProperty(k)跳过 Object.prototype。好吧,如果有人愚蠢到修改 Object.prototype,谁能说他们不会做任何与现有原型冲突的事情?例如,如果有人运行这个怎么办:

如果这是第一个脚本运行,这是否意味着对于页面其余部分的每个脚本,实际上不可能安全地迭代对象?

0 投票
6 回答
54009 浏览

javascript - 为什么使用 Object.prototype.hasOwnProperty.call(myObj, prop) 而不是 myObj.hasOwnProperty(prop)?

如果我理解正确的话,JavaScript 中的每个对象都继承自 Object 原型,这意味着 JavaScript 中的每个对象都可以通过其原型链访问 hasOwnProperty 函数。

在阅读RequireJS的源代码时,我偶然发现了这个函数:

hasOwn是对 的引用Object.prototype.hasOwnProperty。将此函数编写为

既然我们在这里,我们为什么要定义这个函数呢?这只是为了(轻微)性能提升而对属性访问进行快捷方式和本地缓存的问题,还是我错过了任何可能在没有此方法的对象上使用 hasOwnProperty 的情况?

0 投票
2 回答
543 浏览

javascript - Javascript 数组。先进的

我的 php 脚本中有 JSON 字符串,如下所示:

我不知道有多少个 AXXXXXXXX 元素,它包含多少个元素。要获得 A 元素,我使用以下代码:

现在我知道我的 A 元素长度

现在我需要知道 A 中元素的最大长度:

我怎样才能得到这个图表的输出数组?

谢谢!

0 投票
2 回答
656 浏览

javascript - 一个简单的 `continue` 语句是否可以替代将整个 for..in 循环体嵌套在 `if` 中?

通常,for..in臭名昭著的警告的解决方案是:

我觉得这样做会更干净:

问题是……它们在功能上不一样吗?

0 投票
1 回答
3062 浏览

javascript - IE9:hasOwnProperty 技巧不起作用?

有据可查的是,IE 中的原生 DOM 元素不包含 hasOwnProperty() 方法。有几个解决方案;其中最优雅的是直接在 Object.prototype 中访问 hasOwnProperty() 方法,如下所示:

在我看来,这不再适用于 IE9。有人可以解释吗?这是一个说明这一点的小提琴。

在标准模式下使用 IE9 并关闭兼容模式,警报显示:

但是,在打开兼容性或怪癖模式(或使用开发人员工具使用 IE8 和 IE7 引擎呈现页面)后,警报会显示:

这里还有其他工作吗,或者 hasOwnProperty 的这种解决方法不再可用?

0 投票
1 回答
1280 浏览

javascript - 是否有一种 jQuery 方法仅迭代对象自己的属性?

我正在制作一个类似 jQuery 的小型库,让我感到奇怪的是$.each.

在 javascript 中,我们有一个for...in循环:

这样做的问题是,它也会遍历继承的属性,即来自对象构造函数原型的属性。

hasOwnProperty例如,使用 可以知道这一点。而 jQuery可以做到这一点。

但是,当您将对象传递给 时$.each,它的行为与 a完全一样for...in,也会迭代继承的属性。它也应该稍微慢一些,并且需要输入更多字符。

检查此小提琴以查看它的实际效果并在此处查找$.each.

所以我的问题是,jQuery 中是否有只包含自己属性的对象迭代方法?如果不是,图书馆应该像这样吗?

编辑:由于 jQuery 不这样做,你也可以回答这是否有用。我的意思是,我看不到自己想要迭代原型属性,但也许我错过了一些东西。

0 投票
2 回答
1256 浏览

javascript - javascript hasOwnProperty

我试图让我的一些类型拥有一种多重“继承”,如下所示:

但是 for 循环没有向UIControls.UIControl.prototype我的新类型原型添加任何属性UIControls.ClickableMesh.prototype。为什么hasOwnProperty返回 false ?它应该有一些直接属于对象的成员。

0 投票
1 回答
137 浏览

javascript - “清除”对象是避免使用 hasOwnProperty 的可行方法吗?

我理解为什么 hasOwnProperty 是必要的,即使一个对象可以完全控制,因为 Object.prototype 可能已被修改。但是,如果我真的想避免它,请考虑一下:

换句话说,我在使用它之前清除了属性的实例。这应该有效,还是我错过了一些极端情况?

0 投票
1 回答
424 浏览

internet-explorer-9 - Javascript Object.prototype.hasOwnProperty 在使用 YUI 属性默认值时为 IE9+ 返回不正确的值

我相信我在 IE9+ 和/或 YUI 3 中使用 hasOwnProperty javascript 方法发现了一个错误。我想知道这里是否有人以前见过这个问题,或者你是否能够进一步隔离这个问题。我想将此问题告知相关方,但我不知道是否需要联系 IE 团队或 YUI。

细节:

当 IE9/IE10 为:

  • 以标准模式渲染
  • 涉及一个初始化的 YUI 属性(示例代码中的第 11 行)

hasOwnProperty 为包含无效 javascript 标识符的键的对象返回不正确的值(ab 中的 b 可以,a.5 中的 5 无效)。有效的标识符没有这个问题。

示例代码:

http://jsfiddle.net/bobbyakadizzy/nLZJy/6/(记住这个问题只出现在IE9/IE10)

当它应该返回 true 时,运行new Y.IE9HasOwnPropertyTest(); GLOBAL_attributeWithNumericProperty.hasOwnProperty('1234');将返回 false。

0 投票
1 回答
1441 浏览

jquery - 检查 jQuery Ajax 是否有响应

我使用 jQuery Ajax 函数在 WordPress 主题上安装一些演示数据。下面的这个脚本适用于我以前研究过的主题,但是现在由于某种原因我收到了错误

Uncaught TypeError: Cannot call method 'hasOwnProperty' of null

这是我正在使用的脚本

任何帮助将不胜感激。