-2
内部函数变量可以访问外部函数变量,它可能或不可能在java script.I混淆的关闭。如何内部函数变量可以访问使用闭包在javascript中的外部函数变量
function a(){
var x=10;
console.log(x,y);
return function b(){
var y=20;
console.log(x,y);
}
}
内部函数变量可以访问外部函数变量,它可能或不可能在java script.I混淆的关闭。如何内部函数变量可以访问使用闭包在javascript中的外部函数变量
function a(){
var x=10;
console.log(x,y);
return function b(){
var y=20;
console.log(x,y);
}
}
是的,内部函数变量可以访问外部函数变量,但不是周围的其他方式。很好的澄清问题。下面是访问包含范围内的变量的函数的简单示例。
var name = 'John';
var Person = function(){
this.name = name;
}
var guy = new Person();
guy.name //John
function a(){
var x=10;
console.log(x);
return function b(){
var y=20;
console.log(x,y);
}
}
var x = a();
console.log('x defined')
x();
尝试运行此看到在JavaScript
对于上述实施例ⅰ具有打印10 20,但是10被印刷在解释的序列而Y没有定义,为什么? – 2014-12-13 19:22:04
javascript会在y定义之前运行console.log(x,y),所以y将被记录为未定义。 如果您运行返回的函数,则y将在该点定义,第二个console.log将会正确记录 – 2014-12-13 20:46:08