1、检查自己的js代码看代码中有没有死循环。
2、代码中引用了jQuery-1.4.2.min.js这个js实现一些动态效果或者是辅助,这个版本的jQuery就存在这样的问题(同事就是遇到了这个问题)。
3、解决方案:
4、查询自己的代码,用ie8、ie9自带的js调试工具跟一遍代码看哪里出现了问题。
5、更换jQuery引用版本。
你这个是因为你进入死循环了,以name属性为例,你name属性的get访问器的代码是:
return "hello! I'm " + this.name
此时return中包含this.name,而这个this.name又会再次进入你的get访问器,然后又发现有name又进入你的访问器,死循环直到内存溢出,你的age属性的set访问器一样的道理,改成下面这样就可以了。
var person = { }(function () {
var _name = "Rainn", _age = 25
Object.defineProperties(person, {
name: {
get: function () {
return "hello! I'm " + _name
},
set: function (newValue) {
_name = newValue + "(changed)"
}
},
age: {
get: function () {
return "18 forever"
},
set: function (newValue) {
_age -= 1
}
}
})
})()