IE 8 中的 sifr 3 r436 javascript 错误
我在 IE8 中收到此错误:
对象不支持此属性或方法
此行上的
this.results.forEach(function(a){if(!a.views){a.views=0}})
。我对 sifr 很陌生,对 Javascript 也很陌生,所以我不确定在这里做什么。如果有人能给我指出一个“有用”的方向,那就太好了。
I get this error in IE8:
Object doesn't support this property or method
on this line.
this.results.forEach(function(a){if(!a.views){a.views=0}})
I am new to sifr and fairly new to Javascript so I am not sure on what to do here. If someone could point me in a "helpful" direction that would be wonderful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
到目前为止,在任何版本的 IE 中,您都没有在数组上获得
forEach
方法。Array.prototype.forEach
是 ECMA-262 第五版功能,您不能依赖它的可用性:浏览器支持基线是第三版,其中没有map
、filter
、forEach
甚至数组上的indexOf
。如果您愿意,您可以通过修改 Array.prototype 添加该方法来纠正此问题。例如,请参阅 MDC 的代码。或者,如果您正在使用原型库,就像您看起来的那样,您可以使用
.each
,这会向您隐藏差异。ECMA-262 确实很难阅读;寻找内置类型的真正受支持的无处不在的基线的有用位置是旧的 Netscape 4 时代的 JavaScript 参考。忽略其他地方最好记录的 DOM 内容,但它对于 JavaScript 内置类型很有用。
You don't get a
forEach
method on arrays in any version of IE so far.Array.prototype.forEach
is an ECMA-262 Fifth Edition feature which you can't rely on being available: the browser support baseline is Third Edition, where there is nomap
,filter
,forEach
or evenindexOf
on arrays.You can correct this by hacking the
Array.prototype
to add the method if you like. See MDC's code, for example. Or, if you are using the prototype library, as you seem to be, you can use.each
, which hides the difference from you.ECMA-262 is really hard to read; A useful place to look for the real supported-everywhere baseline for built-in types is in the old Netscape 4-era JavaScript reference. Ignore the DOM stuff which is best documented elsewhere, but it's good for the JavaScript built-in types.