JavaScript 学习笔记 五 函数作用域
2014-04-28 21:47
429 查看
//函数作用域 //JavaScript 的作用域为词法作用域,所谓词法作 //用域是说,其作用域为在定义时(词法分析时)就确定下来的,而并非在执行时确定 //作用域链是关于作用域的链,通常实现为一个链表,链表的每个项都是一个对象,在全局作用域中,该链 //中有且只有一个对象,即全局对象。对应的,在一个函数中,作用域链上会有两个对象,第 //一个(首先被访问到的)为调用对象,第二个为全局对象。 //JavaScript 中,函数也是一种对象,并非其他任何对象的一部分 //函数本身是独立的。可以通过Function 对象上的 call 或者 apply 函数来修改函数的上下 var str = "global"; function scopeTest(){ alert(str);// 由于在局部作用域是能找到str的定义,而此处使用是在局部定义之前,所以打印的是 undefined var str = "local"; alert(str); alert(window.str);// 利用全局对象,来引用全局变量 } scopeTest(); function scopeTest2(){ alert(str);//由于在局部作用域上未能找到定义,而此处是继续在链接上查询,最终找到的是全局变量 } scopeTest2();
function adPrint2(str, handler){ print(handler(str)); } //将字符串转换为大写形式,并返回 function up(str){ return str.toUpperCase(); } //将字符串转换为小写形式,并返回 function low(str){ return str.toLowerCase(); } adPrint2("Hello, world", up); adPrint2("Hello, world", low); //想要处理一些对象,但是又不确定以何种形式来处理,则完全可以将“处理方 //式”作为一个抽象的粒度来进行包装(即函数)。
相关文章推荐
- JavaScript 学习笔记 五 函数作用域
- python学习笔记11(函数二): 参数的传递、变量的作用域
- Javascript学习笔记之函数篇(五) : 构造函数
- JavaScript语言精粹学习笔记(3)——函数1
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- JavaScript学习笔记之JS函数
- javascript学习笔记四:javascript中的函数(对象)
- 《JavaScript高级程序设计 第三版》学习笔记 (六) 函数与闭包详解
- javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量
- Coffee script 学习笔记I --函数及变量作用域
- JavaScript学习笔记(十四) 立即执行函数
- [翻译]javascript学习笔记 (一)-函数基础
- javascript学习笔记三【函数的三种角色】
- Javascript学习笔记2 函数
- JavaScript学习笔记_2_函数Basic
- JavaScript 函数的call()方法的学习笔记
- javascript学习笔记—DOM常用API、属性、方法、函数
- JavaScript高程学习笔记之函数表达式(7)
- 【JavaScript学习笔记】函数
- Javascript学习笔记_箭头函数