return 的神奇
return的作用:
1.返回函数值:
返回函数中的值,外部调用函数时,则会调用这个值。闭包中就是运用这个属性,调用函数内部的局部变量,以不影响全局变量。
var fn = fn()
console.log(fn) // underfind
function fn () {
document.write('Hello World')
}
当执行的时候,函数fn()执行了,页面会输出5,但是console出来的却是一个undefined,无论你在fn()函数中写任何东西,变量获取弹出的都是undefined,如果你需要他能够赋值给变量,这时候就需要用到return,
var fn = fn()
console.log(fn) // Hello world
function fn () {
var word = 'Hello world'
document.write(word)
return word
}
2.变量私有化
return的位置不一样,效果也是不一样的。。
var num = 1;
function fn () {
num = 2
return
function fn () {} // 相当于 var num = function fn () {},此时var num 将全局变量num私有化,变成了局部变量
}
fn()
console.log(num) // 2
这是return和函数不在一行的时候(),还有return和函数在一行的时候
var num = 1;
function fn () {
num = 2
return function fn () {} 同行代表函数执行到了声明式函数,num依然是全局变量
}
fn()
console.log(num) // 1