作家
登录

JavaScript 的方法重载效果

作者: 来源:www.28hudong.com 2013-03-30 02:25:08 阅读 我要评论

在 JavaScript 的方法内,有个叫做 arguments 的变量数组,它是只读的,所有实际传入的参数变量都 放在了里面,通过它,我们可以对传入的参数进行类型检查,从而实现重载的效果。 判断一个变量的类型有两种方法。 1,用 typeof 语句: 复制代码 代码如下: function check(){ if(typeof arguments[0] == 'string') alert('你传入的参数是个字符串'); else if(typeof arguments[0] == 'number') alert('你传入的参数是个数字'); } 2,用所有 JavaScript 变量都带有的一个属性 constructor,这个属性指向用来构造该变量的构造函数: 复制代码 代码如下: function check(){ if(arguments[0].constructor == String) alert('你传入的参数是个字符串'); else if(arguments[0].constructor == Number) alert('你传入的参数是个数字'); } 对照表: typeof constructor --------------------------- string String number Number object Object function Function boolean Boolean object Array object User 通过这个对照表可以看出用 typeof 不能准确的判断出具体的类型,所以我们用 constructor 来进行判 断。 首先我们定义一个用来判断参数类型和个数的方法 复制代码 代码如下: function checkArgs(types,args){ // 检查参数个数 if(types.length != args.length){ return false; } // 检查参数类型 for(var i=0; i<args.length; i++){ if(args[i].constructor != types[i]){ return false; } } return true; } 我们定义一个方法对上面的方法进行应用 复制代码 代码如下: function show(){ // 处理参数是一个字符串的调用 if(checkArgs([String],arguments)){ alert(arguments[0]); } // 处理参数是一个字符串和一个数字的调用 else if(checkArgs([String,Number],arguments)){ var s = ''; for(var i=0; i<arguments[1]; i++){ s+=arguments[0]; } alert(s); // 参数不符合要求时,给予提示 }else{ alert('不支持的参数'); } } 当我们定义的 JavaScript 方法对参数要求比较严格时,就可以用这样的方式来编写代码。

  推荐阅读

  使用JQuery和s3captche实现一个水果名字的验证

先看个图片: 1.介绍: s3captcha是一个非常有用的可以让图片顺序显示的一个JQuery插件。它是通过php实现的。但是我发现很容易把它转化为asp.net和C#的代码。 我做了一个config的配置文件可以在文件中配置图片的源>>>详细阅读


本文标题:JavaScript 的方法重载效果

地址:http://www.17bianji.com/kaifa2/JS/28292.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)