请双越老师看下边代码,为什么我下边写的这种形式就返回undefined呀?
来源:6-6 作用域相关的面试题 - part2

JavaScript__yxq
2021-04-06
function createCache() {
let data = {};
return {
get: function (key) {
return data[key];
},
set: function (key, value) {
data[key] = value;
}
}
}
// const c = createCache();
// c.set('a', 100);
// console.log(c.get('a'));
//偶然发现的,为什么我下边写的这种形式就返回undefined呀?有啥不同吗?
createCache().set('a', 100);
console.log(createCache().get('a'));//undefined
</script>
写回答
3回答
-
你的代码是这样的。
createCache().set('a', 100); console.log(createCache().get('a'));//undefined
我给你翻译一下:
const c1 = createCache() c1.set('a', 100); const c2 = createCache() console.log(c2.get('a'));//undefined
经过我的翻译,你能明白你的问题了吧?
022022-03-16 -
薛清扬
2022-03-14
creatCache返回了两个不同的对象
00 -
双越
2021-04-07
set 和 get 时分别执行了两次 createCache() ,这两次的返回值,不是同一个东西。
022021-04-07
相似问题