微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我试图了解关键字“this”和方法“call”是如何工作的在我无知的眼睛里看起来像个虫子

如何解决我试图了解关键字“this”和方法“call”是如何工作的在我无知的眼睛里看起来像个虫子

function sum() {
    return this.a + this.b;
} 

这个函数应该从全局作用域中找到 a 和 b 的值,如果没有调用,然后将它们相加。起初我设置了a = 3,b = 4;。如果我然后输入 sum() 我得到 7。如果我更新 a 和 b 的值而不将它们声明为 const。 this.athis.b 的值反映在 sum() 中。

但是当我输入 const a = 10; 然后继续运行 sum() 时,它的值仍然是 7。值不应该是 14 吗?如果重要的话,我正在谷歌浏览器的控制台上进行这些计算。

sample screenshot of the console

既然 a = 5,sum() 的值不应该是 13 吗?为什么它仍然使用a的旧值?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。