.NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢?
Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 “undefined” 未定义来决定怎么处理,从而实现类似方法重载的功能。
例如:
var showMessage = function(name,value,id){ if(id != ”undefined”){ alert(name+value+id); } else if(value != ”undefined”){ alert(name + value); } else{ alert(name); } }showMessage(”哈哈”); showMessage(”哈哈”,”??”); showMessage(”哈哈”,”??”,124124);
今天在Ajaxian上面看到了一篇关于Javascript方法重载的写法,它是能过另外一个方法来实现的。
看一下这个代码:
// addMethod - By John Resig (MIT Licensed) function addMethod(object, name, fn){ var old = object[ name ]; object[ name ] = function(){ if ( fn.length == arguments.length ){ return fn.apply( this, arguments ); } else if ( typeof old == 'function' ){ return old.apply( this, arguments ); } } };var UserInfo = function(){ addMethod(this,”find”,function(){ alert(”没有参数”); });
addMethod(this,”find”,function(name){ alert(”传入的参数是一个,叫 ”+name); });
addMethod(this,”find”,function(name,value){ alert(”传入了两个参数,一个叫 name=”+name+” 一个叫 value=”+value); }); };
var userinfo = new UserInfo(); userinfo.find(); userinfo.find('我是谁?'); userinfo.find('某某某','1512412514');
问题内容: 我在Javascript代码中使用以下方法重载。 我不明白的是,如果我调用javascript应该调用第一个函数,但是问题是javascript实际上调用了第三个函数。这是为什么?如何调用第一和第二函数?这是什么原因呢?有没有一种合适的方法可以在Javascript中实现方法重载?行业标准是什么? 问题答案: JavaScript不支持方法重载(如Java或类似方法),您的第三个函数将
问题内容: 以下代码无法编译。 发出编译时错误。 对test的引用是模棱两可的,varargspkg.Main中的方法test(int …)和varargspkg.Main中的方法test(float …) 这似乎很明显,因为方法调用中的参数值可以提升为 如果任何一个或两个参数都带有或作为后缀,则会进行编译。 但是,如果我们用相应的包装器类型表示方法签名中的接收参数,如下所示 那么对该方法的调用不
问题内容: 有一些与此类似的话题,但是我找不到一个足够答案的话题。 我想知道Java中构造函数重载的最佳实践是什么。我已经对这个主题有自己的想法,但是我想听听更多的建议。 我既指的是简单类中的构造函数重载,也指继承已经重载的类时的构造函数重载(这意味着基类具有重载的构造函数)。 谢谢 :) 问题答案: 虽然没有“官方指南”,但我遵循KISS和DRY的原则。使重载的构造函数尽可能简单,最简单的方法是
本文向大家介绍Lua实现__add方法重载示例,包括了Lua实现__add方法重载示例的使用技巧和注意事项,需要的朋友参考一下 实现加法(__add)重载代码示例:
本文向大家介绍PHP实现重载的常用方法实例详解,包括了PHP实现重载的常用方法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现重载的常用方法。分享给大家供大家参考,具体如下: php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数和参数类型) 从这个定义来说,php是没有重载的,因为php
问题内容: 我正在开发一个API,其中包含许多相同名称的方法,只是签名不同而已,这在我看来是很普遍的。它们都做相同的事情,不同之处在于,如果用户不想指定默认值,则它们会默认初始化各种值。作为一个容易理解的例子,考虑 所有这些方法执行的基本动作是相同的;森林里种了一棵树。我的API用户需要了解许多重要事项,以了解如何为所有这些方法添加树。 理想情况下,我想编写一个Javadoc块,供所有方法使用: