javascript_core阅读笔记(三)
来源:互联网 发布:上海网络推广招聘 编辑:程序博客网 时间:2024/04/30 10:13
本系列内容是阅读javascript_core的笔记,原文见http://abruzzi.iteye.com/
13.javascript中的函数对参数的处理十分灵活,可以传递任意数量的参数给一个function
14.在执行一个函数时,函数的参数和局部变量会作为调用对象的属性进行存储。同时,解释器会为函数创建一个执行器上下文(context),与上下文对应的是作用域链,通常实现为一个链表,链表的每项都是一个对象。在全局作用域中,该链中有且只有一个对象,即全局对象。在一个最外层函数中,作用域链上会有两个对象,第一个是调用对象,第二个为全局对象。如果函数需要用到某个变量,则解释器会遍历作用域链。
作用域链随着嵌套函数的层次会变的很长,但是查找变量的过程依旧是遍历作用域链,自下而上查找,直到找出该值。如果遍历完作用域链仍然没有找到对应的属性,则返回undefined
15.Function.call()和Function.apply()用来修改函数的上下文,函数中的this指针将被替换为call或者apply的第一个参数。apply的第二个参数为函数需要的参数组成的数组,而call则需要跟若干个参数,参数之间以逗号分隔
16.javascript的同一个数组中,可以有各种完全不同类型的元素
17.扩展数组和数组的遍历
从这个例子可以看出,除非必要,尽量不要对全局对象进行扩展,因为对全局对象的扩展会造成所有继承链上都带上“烙印”,有时候会造成一些非常难以发现的BUG
13.javascript中的函数对参数的处理十分灵活,可以传递任意数量的参数给一个function
function sum() { var result = 0; for ( var i = 0; i < arguments.length; i++) { var current = arguments[i];if (isNaN(current)) { throw new Error("not a number exception");} else { result += current;} } return result;}alert(sum(1, 2, 3, 4));alert(sum(5, 6));alert(sum(1, 2, "ky"));
14.在执行一个函数时,函数的参数和局部变量会作为调用对象的属性进行存储。同时,解释器会为函数创建一个执行器上下文(context),与上下文对应的是作用域链,通常实现为一个链表,链表的每项都是一个对象。在全局作用域中,该链中有且只有一个对象,即全局对象。在一个最外层函数中,作用域链上会有两个对象,第一个是调用对象,第二个为全局对象。如果函数需要用到某个变量,则解释器会遍历作用域链。
作用域链随着嵌套函数的层次会变的很长,但是查找变量的过程依旧是遍历作用域链,自下而上查找,直到找出该值。如果遍历完作用域链仍然没有找到对应的属性,则返回undefined
15.Function.call()和Function.apply()用来修改函数的上下文,函数中的this指针将被替换为call或者apply的第一个参数。apply的第二个参数为函数需要的参数组成的数组,而call则需要跟若干个参数,参数之间以逗号分隔
16.javascript的同一个数组中,可以有各种完全不同类型的元素
17.扩展数组和数组的遍历
Array.prototype.useless= function(){};var arr = [ 1, 2, 3, 4, 5 ];alert("length: " + arr.length);// 5for ( var prop in arr) { alert(prop + ": " + arr[prop]);// 会输出useless}for ( var i = 0; i < arr.length; i++) { alert(arr[i]);// 不会输出useless}
从这个例子可以看出,除非必要,尽量不要对全局对象进行扩展,因为对全局对象的扩展会造成所有继承链上都带上“烙印”,有时候会造成一些非常难以发现的BUG
- javascript_core阅读笔记(三)
- javascript_core阅读笔记(一)
- javascript_core阅读笔记(二)
- javascript_core阅读笔记(四)
- javascript_core阅读笔记(五)
- 阅读笔记(三)
- 论文阅读笔记(三)
- FlaskBB阅读笔记(三)
- Foundation of AJAX 阅读笔记(三)
- 21天学通C#阅读笔记(三)
- Dessecting MFC 阅读笔记(三)
- 《Maven实战》阅读笔记整理(三)
- CUDA编程指南阅读笔记(三)
- PRML 阅读笔记(三)<1.5>
- 《android编程实践》阅读笔记(三)
- 《Effective Java》阅读笔记(三)
- 《HTTP权威指南》阅读笔记(三)
- 《JAVA网络编程》阅读笔记(三)
- (转载)linux文件系统的目录结构
- javascript_core阅读笔记(一)
- PHP PDO 自动重连
- javascript_core阅读笔记(二)
- SQL函数
- javascript_core阅读笔记(三)
- 20个常用的java代码片段
- 安装双系统:XP + Ubuntu 11.04
- javascript_core阅读笔记(四)
- WPF 向gird添加子控件
- javascript_core阅读笔记(五)
- django第三方类库 - django-south 项目开始中就使用south方法
- 关于自定义组合组件应用的问题总结
- PostgreSQL使用方法