Javascript 使用「;捷径;函数给了我一个;非法调用”;错误
我用Javascript ES6编写了以下代码:Javascript 使用「;捷径;函数给了我一个;非法调用”;错误,javascript,ecmascript-6,local-storage,Javascript,Ecmascript 6,Local Storage,我用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); 但我在最后一
// 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);
但我在最后一行得到了“非法调用”,我不明白为什么
您知道如何解决此问题吗?您正在更改此方法的上下文。使用将
此
设置为本地存储
:
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'));
或者,您可以创建一个调用localStorage函数的包装器函数
foo.set = (k,v) => window.localStorage.setItem(k,v)
foo.get = (k) => window.localStorage.getItem(k)
您正在更改函数的上下文(此
)。