JavaScript范围练习 - 无法弄清楚为什么结果是10(而不是30)

时间:2018-04-24 15:21:22

标签: javascript scope

我正在做一些范围练习,并遇到了以下问题。

老实说,我认为答案是30.我无法弄清楚为什么result等于10.对我而言,x似乎来自30的全球范围。

我很感激有关此事的任何见解。非常感谢。

var x = 30;
    
function get () { return x; }
function set (value) { x = value; }

set(10);
var result = get(20);

console.log(result);

2 个答案:

答案 0 :(得分:4)

x确实来自全球范围,但在您致电var result = get(20);之前,请致电set(10);,将10分配给全球x

答案 1 :(得分:1)

x确实来自全球范围。 function set (value) { x = value; }更改全局范围中x的值。