我不知道';我不懂这个Javascript?
有人能带我看一下这个例子吗?为什么它打印10个?我认为我在功能方面对功能感到困惑。还有我不知道';我不懂这个Javascript?,javascript,Javascript,有人能带我看一下这个例子吗?为什么它打印10个?我认为我在功能方面对功能感到困惑。还有var x=和x=之间的区别是什么 var x = 6; var y = 4; var a = function(b) { return function(c) { return y + b + c; } }; x = 2; y = 5; var fn = a(x); x = 1; y = 3; var unknown = 5; console.log(fn(unknown)); var x=
var x=
和x=
之间的区别是什么
var x = 6;
var y = 4;
var a = function(b) {
return function(c) {
return y + b + c;
}
};
x = 2;
y = 5;
var fn = a(x);
x = 1;
y = 3;
var unknown = 5;
console.log(fn(unknown));
var x=
用于将x声明为变量,而x=
用于更改其值“var”不会被第二次使用,因为之前x已经声明为变量。这是一个关于JavaScript的基本示例。您学习编程多长时间了?从哪里获得此代码?是你写的,是从书上写的吗?如果它来自一本书,那就不是很好的代码。我建议在开始编写返回函数的函数之前进行更多的练习。或者尝试将代码分解成更小的片段。在一张纸上,写出你认为代码在做什么。@VũKhanh,如果它这么简单,你可以解释它。我看到很多人在javascript方面都很难做到正确。var x
是变量x被声明和初始化的地方,x=
是值或x被更改或更新的地方。用于混淆的位确实做得很好。现在我知道这叫做闭包,我想我对这个例子理解得更好一些
var x = 6;
var y = 4;
var a = function(b) {
return function(c) {
return y + b + c;
}
};
x = 2;
y = 5; // unnecessary, meant to confuse
var fn = a(x); // creates a closure, where b equals 2
x = 1; // unnecessary, meant to confuse
y = 3;
var unknown = 5;
console.log(fn(unknown)); // y=3,b=2,c=5, total = 10