<script type="text/javascript">
var numAdd;? //全局變量
function f1() {
var num = 100; //局部變量
numAdd = function() {? ? ?//numAdd 函數(shù)此時(shí)numadd 為全局變量
num += 1;
console.log(num)
}
function f2() {? ?//f2函數(shù)
alert(num);
}
function f3() {?//f3函數(shù)
alert(num);
}
return f3;? //f2 f3 函數(shù)在 f1 函數(shù)里面 所以全局無法調(diào)用f2 f3 函數(shù) 當(dāng)把f3,f2 return 出函數(shù)?
}
var result=f1();??
result() //?result() => f1()()
numAdd();? // 當(dāng)沒有變量result 時(shí) 即使numAdd為全局變量 也無法使用函數(shù)
result(); //100
</script>
var result=f1();? 和?var result= new f1();? 的區(qū)別?
var result= new f1(); 實(shí)例化一個(gè)對象時(shí) 會在實(shí)例化函數(shù)里面創(chuàng)建一個(gè)空對象 然后將this的指向 指向空對象 最后 return this
而里面的函數(shù)則是添加到這個(gè)空對象中? 所以 在實(shí)例化的變量 可以點(diǎn)出函數(shù)里面的函數(shù)