Javascript 如何包装本地存储方法
我需要包装Javascript 如何包装本地存储方法,javascript,Javascript,我需要包装localStorage的setItem,getItem和removietem方法,这样我就可以编写这样的东西了 local.set('foo', 'bar'); // equivalent to localStorage.setItem('foo', 'bar') 我以前做得很好,很简单 local.set = localStorage.setItem 在我知道之前。所以我把代码改成了这个 local.set = function() { return localStorage.
localStorage
的setItem
,getItem
和removietem
方法,这样我就可以编写这样的东西了
local.set('foo', 'bar'); // equivalent to localStorage.setItem('foo', 'bar')
我以前做得很好,很简单
local.set = localStorage.setItem
在我知道之前。所以我把代码改成了这个
local.set = function() { return localStorage.setItem(arguments) };
但是现在我得到了一个错误NS\u error\u XPC\u NOT\u ough\u ARGS:参数不足
。我做错了什么?试试这个:
local.set = function() { return localStorage.setItem.apply(localStorage, arguments) };
或者为了与旧浏览器兼容,您需要将参数
转换为数组:
local.set = function() {
return localStorage.setItem.apply(localStorage, [].slice.call(arguments));
};
您的方法是将参数
类似数组的对象作为唯一的参数传递给localStorage.setItem()
,这意味着这样做:
localStorage.setItem(['foo', 'bar']); // wrong - one argument
与此相反:
localStorage.setItem('foo', 'bar'); // right - two arguments
使用允许您使用数组(或类似数组的对象,尽管如上所述,较旧的浏览器需要实际的数组)指定应传递给要调用的函数的各个参数。@nnnnnn谢谢,它可以工作!把它作为答案贴出来,好吗?