javascript - Chrome 不支持 Javascript 中的原型(prototype)属性吗?

标签 javascript cross-browser

这是我的代码:

Image.prototype.x = 0;
Image.prototype.y = 0;

var blankImage = new Image();
blankImage.src = "blank.png";
blankImage.x = 16;
blankImage.y = 16;

在 Firefox 中,如果我执行 blankImage.x,它将返回 16,但在 Chrome 中,它返回 0。有什么办法解决这个问题吗?我喜欢这个解决我当前问题的方法..

最佳答案

Chrome 已经在图像元素上定义了 xy。由于您尚未将该元素插入到页面中,因此它的 xy 将为 0

在 Chrome 控制台中至少包含一张图片的页面上运行此命令...

$$("img")[0].hasOwnProperty("x");

您会看到 HTMLImageElement 已经直接在其上拥有该属性,在其 prototype 对象上。

如果你在你的控制台中输入这个,你也可以直观地看到它......

dir($$("img")[0]);

...然后展开对象。

xy 属性是不可变的,无法更改,因此当您尝试修改它们时它们会保留它们的值(就好像它们的 writable)。

如果您对 HTMLImageElement 上尚不存在的属性执行相同的操作,它将按您的预期工作。

关于javascript - Chrome 不支持 Javascript 中的原型(prototype)属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287040/

相关文章:

javascript - anchor href 中的唯一哈希值?

asp.net-mvc - IE8 与 FireFox/Chrome 中的 XMLHttpRequest 不同

css - 跨浏览器 css 规则 : Mozila, chrome、safari 和 css2 与 css3

internet-explorer - 我如何帮助杀死 IE6?

javascript - 克隆 JavaScript 对象?

javascript - 如何将javascript渲染模块集成到scrapy中?

javascript - Angular 2 ng-bootstrap 模态 : How to pass data to entry component

browser - Sahi:无法在多个浏览器中执行浏览器中记录的脚本

css - css 中的定位和 float 以及跨浏览器设计的兼容性代码

javascript - 无法在源映射文件中设置断点(使用 jquery 的示例)