Javascript 使用「;捷径;函数给了我一个;非法调用”;错误

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); 但我在最后一

我用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);
但我在最后一行得到了“非法调用”,我不明白为什么


您知道如何解决此问题吗?

您正在更改此方法的上下文。使用将
设置为
本地存储

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)
您正在更改函数的上下文(
)。