diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/.keep" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/.keep" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/.keep" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-10-31-\351\227\255\345\214\205.md" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-10-31-\351\227\255\345\214\205.md" new file mode 100644 index 0000000000000000000000000000000000000000..16c2a9976b917f86fdbf5266199230d8650fccd4 --- /dev/null +++ "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-10-31-\351\227\255\345\214\205.md" @@ -0,0 +1,64 @@ +一、变量的作用域: + +函数内部可以直接读取全局变量。 + +var n=999; + +function f1(){ +alert(n); +} + +f1(); // 999 + +在函数外部无法读取函数内的局部变量 + +function f1(){ +var n=999; +} + +alert(n); // error + +这里有一个地方需要注意, 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! + +function f1(){ +n=999; + +} + +f1(); + +alert(n); // 999 + +二、如何从外部读取局部变量 + +只有通过变通方法才能实现从外部读取局部变量。那就是在函数的内部,再定义一个函数。 + +function f1(){ + +var n=999; + +function f2(){ +alert(n); // 999 +} + +} + +在上面的代码中,函数f2就被包括在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的。父对象的所有变量,对子对象都是可见的,反之则不成立。 + +既然f2可以读取f1中的局部变量,那么只要把f2作为返回值,我们不就可以在f1外部读取它的内部变量了吗! + +function f1(){ + +var n=999; + +function f2(){ +alert(n); +} + +return f2; + +} + +var result=f1(); + +result(); // 999 \ No newline at end of file