Tho*_*mas 4 javascript local-storage ecmascript-6
我在 Javascript ES6 中有这个代码:
// Create a new object
var foo = new A();
// Create shortcuts to use localStorage faster
foo.set = window.localStorage.setItem;
foo.get = window.localStorage.getItem;
// Try to use localStorage
foo.set('count', 1);
Run Code Online (Sandbox Code Playgroud)
但是最后一行我得到了“非法调用”,我不明白为什么。
知道如何解决这个问题吗?
您正在更改此方法的上下文。使用Function#bind来设定this到localStorage:
var foo = {};
undefined
foo.set = window.localStorage.setItem.bind(localStorage);
foo.get = window.localStorage.getItem.bind(localStorage);
// Try to use localStorage
foo.set('count', 1);
console.log(foo.get('count'));
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建一个调用 localStorage 函数的包装函数。
foo.set = (k,v) => window.localStorage.setItem(k,v)
foo.get = (k) => window.localStorage.getItem(k)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |