3

我想向 localStorage 添加 2 个方法。我的目标是最终得到这样的结果:

localStorage.setObject(key, object);
localStorage.getObject(key);

此解决方案适用于大多数浏览器,但不适用于 IE8:

Storage.prototype.setObject = function(key, value) {
    this[key] = JSON.stringify(value);
}

Storage.prototype.getObject = function(key) {
    return JSON.parse(this[key]);
}

在做了一些研究之后,显然我可以使用 Lawnchair.js 或以其他方式解决它。但我想知道为什么它在 IE8 中不起作用。我可以扩展字符串和数组。为什么不存储?如何在 IE8 中找出哪些对象可以扩展,哪些对象不能扩展?

4

1 回答 1

2

这是IE。您也不能扩展 DOM 元素。如果你有时真的需要调用一个函数,你可以通过Storage.prototype.getObject.call(localStorage, 'hello').

扩展内置对象也不被认为是一件好事。

于 2012-05-09T11:26:04.160 回答