JavaScript学习-js中函数的重载
2011-10-20 22:11
393 查看
JavaScript中并没有提供原生的函数重载的方法,但也不是没有办法,关键点在于“arguments”,在函数体内,arguments具有特殊的含义,它是类似于数组的存在,但它并不是数组,它里面保存了每一个参数,访问其中的变量时,和数组一样,arguments[0],表示第一个参数,同样,arguments具有.lenght数组属性,但是没有push和pop之类的方法,可以看做是只读。
JavaScript函数中的参数若在调用时比定义时候多时,则多出来的参数不会被理会,若少了,那么在函数内这个参数就为undefined。
如果对参数的数量和类型进行判断,就可以根据不同的数量和类型定义不同的函数体,与支持重载的语言相比,JavaScript只是把所有所要重载的函数写在了同一个函数体里面,你所多做的事情就是判断参数的类型和数量。
下面就是对参数进行判断,数量可以从lenght中得到,类型可以通过两个方法获取:
一、typeof操作符。可以判断基本类型,但若是Array和object的时候,它仅仅会告诉你这都是object,应为Array其实就是一个object,还有一些自定义的对象,都是返回obiect,那么还有一种方法:constructor。
二、constryctor。constructor也叫构造函数,是JavaScript中所有对象都具有的一种属性,它能够准确区分变量类型,例如:
那么现在,就有了能够准确判断变量类型的方法,又有了能够判断参数数量的方法,JavaScript函数的重载也就完成了。
JavaScript函数中的参数若在调用时比定义时候多时,则多出来的参数不会被理会,若少了,那么在函数内这个参数就为undefined。
如果对参数的数量和类型进行判断,就可以根据不同的数量和类型定义不同的函数体,与支持重载的语言相比,JavaScript只是把所有所要重载的函数写在了同一个函数体里面,你所多做的事情就是判断参数的类型和数量。
下面就是对参数进行判断,数量可以从lenght中得到,类型可以通过两个方法获取:
一、typeof操作符。可以判断基本类型,但若是Array和object的时候,它仅仅会告诉你这都是object,应为Array其实就是一个object,还有一些自定义的对象,都是返回obiect,那么还有一种方法:constructor。
二、constryctor。constructor也叫构造函数,是JavaScript中所有对象都具有的一种属性,它能够准确区分变量类型,例如:
var t = new Array(); alert(t.constructor == Array); // true function k(){}; var l = new k(); alert(l.constructor == k); // true
var o = 333;
alert(o.constructor == Number); //true
那么现在,就有了能够准确判断变量类型的方法,又有了能够判断参数数量的方法,JavaScript函数的重载也就完成了。
相关文章推荐
- JavaScript总结学习一:js中构造函数与普通函数的区别
- JavaScript学习笔记之JS函数(二)
- Javascript入门学习第五篇 js函数第1/2页
- Javascript入门学习第五篇 js函数第1/2页
- JavaScript学习笔记之JS函数
- JavaScript学习记录总结(四)——js函数的特殊性
- 【JavaScript学习笔记】1:js的书写,显示数据,变量,函数
- JavaScript学习记录总结(六)——js函数闭包特性
- JavaScript学习笔记之JS函数(一)
- 【JavaScript 学习--12】--js 中两种函数定义的区别:函数声明和函数表达式
- JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
- JavaScript高级程序设计(第2版) 学习笔记:(一)js函数依赖性
- JS学习 用 arguments 对象模拟函数重载
- JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第26讲_js函数调用过程内存分析_js函数细节_学习笔记_源代码图解_PPT文档整理
- JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
- 韩顺平 javascript教学视频_学习笔记9_js函数调用过程内存分析_js函数细节
- JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
- Javascript学习笔记之函数重载和类型检查
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数