javascript - Angular ie8 "Object doesn' t支持属性或方法 'hasOwnProperty'“解决方法

标签 javascript internet-explorer internet-explorer-8 hasownproperty

我在 ie8 上使用 angular-1.2.1.js 并收到错误:

对象不支持属性或方法“hasOwnProperty” (在 Angular ForEach 方法内)

function forEach(obj, iterator, context) {
  var key;
  if (obj) {
    if (isFunction(obj)){
      for (key in obj) {
        if (key != 'prototype' && key != 'length' && key != 'name' && obj.hasOwnProperty(key)) {
          iterator.call(context, obj[key], key);
        }
      }
    } else if ...

根据这个 stackoverflow post , hasOwnProperty 在 ie8 中不起作用(至少在 window 对象上不起作用)

我不确定事情是否表现得很奇怪,因为我在 Windows 8 ie 上使用 ie8 模式,但是 hasOwnProperty 在我使用时有效

var a = {b:'c'}
a.hasOwnProperty('b')  //true

为什么 ie8 会抛出错误,我该如何解决? 谢谢

最佳答案

我也遇到了这个错误,并在 angular.js Github Source 上找到了这个编辑来解决这个问题:

if (obj) {
     if (isFunction(obj)){
       for (key in obj) {
//-        if (key != 'prototype' && key != 'length' && key != 'name' && obj.hasOwnProperty(key)) {
//+        // This uglyness around hasOwnProperty is for IE8 to work properly (hasOwnProperty doesn't exist)
/*+*/        if (key != 'prototype' && key != 'length' && key != 'name' && (obj.hasOwnProperty && obj.hasOwnProperty(key) || Object.prototype.hasOwnProperty.call(obj, key))) {
           iterator.call(context, obj[key], key);
         }
       }

enter image description here

还有一项编辑可以让 console.log 在 IE8 上工作 https://github.com/pjparra/angular.js/commit/bcbf9409f10f5988f6946a7b0381eee5e6518989

来源:https://github.com/pjparra/angular.js/commit/8c2ed24412620d68a760cfab70e4dc27a49b9e91

关于javascript - Angular ie8 "Object doesn' t支持属性或方法 'hasOwnProperty'“解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20500730/

相关文章:

javascript - 无法弄清楚如何在我的网页中实现以下 jQuery 插件

javascript - 如何使用 Array#filter() 进行过滤

javascript - addEventListener 未使用其功能

Jquery Ui Sortable 在 IE8 中显示损坏的图像

jquery - 为什么 jQuery 的parents/closest(selector) 函数在 IE8 中表现不同?

css - IE8 中的背景图片问题

javascript - 如何使用选择器选择父级

css - 如何在 IE 中使用背景大小?

html - 旋转木马中的旋转加载器 MaterializeCSS

javascript - IE7+ 的复选框/单选框样式