<script language="JavaScript">
function f(length)
{
alert("高为:"+length);
}
function f(length,width)
{
alert("高为:"+length+",宽为:"+width);
}
</srcipt>
上面那段代码其实是行不通的,因为函数定义时的参数个数和函数调用时的参数个数没有任何关系。 在函数中可以用f.arguments[0]和f.arguments[1]得到调用时传入的第一和第二个参数,所以定义function(length),后面用f(10,10)调用是没有问题的。所以在上面这段代码中,第二个函数是永远不可能被调用到的,那么,要怎样才能实现像函数重载那样的功能呢?
那就是在函数定义中用f.arguments.length判断一下调用时传入的参数个数。然后对不同的情况采用不同的处理方式。
如下:
<script language="JavaScript">
function f()
{
var len= arguments.length;
if(1 == len)
{
var length = arguments[0];
var width = arguments[1];
f2(length,width);
}
else
{
var length = arguments[0];
f1(length);
}
}
function f1(length)
{
alert("高为:"+length);
}
function f2(length,width)
{
alert("高为:"+length+",宽为:"+width);
}
</srcipt>
这样,你就可以给函数f()传入一个参数也可以传入两个参数了,比如f(10)和f(10,10);
个人觉得,这样虽然可以实现重载,但也不是很好用,我们可以根据具体情况在一个函数中实现重载,如果要重载的两个函数相差较大,那就保留两个函数,而如果两个函数的实现基本差不多,那么可以在一个函数中进行判断,处理不同的部分,而不需要像上面那样写成三个函数,如下:
<script language="JavaScript">
function f(length)
{
var len= arguments.length;
if(1 == len)
{
var width = arguments[1];
alert("高为:"+length+",宽为:"+width);
}
else
{
alert("高为:"+length);
}
}
</srcipt>
突然想到转这个是因为今天突然想到07年的时候一个朋友出去找工作有这么大概这么一个问题,所以找了篇文章又看了下,偶对JS不是特别熟悉,呵呵
分享到:
相关推荐
JavaScript(JS)重载是编程中的一个概念,它通常指的是在同一个函数名下定义多个具有不同参数列表的函数,使得根据传入的参数数量或类型,可以调用不同的实现。在许多面向对象的语言中,如Java或C++,函数重载是一...
在JS方法中,不能像C#方法能实现重载,但是我们可以通过js中的arguments来实现js方法的重载。 下面给出html实例: <html> <head> <title>JS方法的重载</title> [removed] function testFun...
本文给大家汇总介绍了Javascript实现运算符重载的方法,实现的思路很简单,有需要的小伙伴可以来看看
在今天的分享中,我们将详细探讨如何使用layui的数据表格组件实现数据重载功能,并将参数传递给后端服务器。LAYui是一款前端UI框架,它提供了丰富的组件,其中包括用于显示和操作表格数据的表格组件。在实际开发中,...
这里我们将详细讨论如何在JavaScript中实现方法重载以及相关的函数参数问题。 ### 方法重载的实现 #### 1. `arguments` 对象 JavaScript 中的每个函数都有一个内置对象 `arguments`,它是一个类数组对象,包含了...
通过上述方法,虽然我们无法在JavaScript中实现真正的函数重载(如Java中的重载),但可以灵活地使用`arguments`对象来实现类似的效果。当然,这种方法也有其局限性,比如代码的可读性可能不如真正的重载清晰,因此...
### JavaScript重载函数实例剖析 #### 一、引言 在传统的面向对象编程语言如Java或C++中,重载(Overloading)是一种常见的特性,它允许开发者在同一作用域内定义多个同名但参数列表不同的方法。然而,在...
总的来说,JavaScript虽然不直接支持方法重载,但通过`arguments`对象可以实现类似的逻辑。不过,这种方法可能会引入一些潜在的问题,如参数顺序的约束和代码可读性的下降。因此,在实际开发中,应权衡利弊,合理...
在这个Web前端教程中,我们将主要关注如何配置Sublime Text3以实现实时重载功能,这对于前端开发者来说尤其重要,特别是对于HTML、CSS和JavaScript的快速迭代工作流程。 首先,我们需要安装一个名为"LiveReload"的...
本文介绍了一种实现JavaScript函数重载的方法,主要依赖于一个名为Overload的静态类。 首先,我们需要理解什么是函数重载以及在不同编程语言中是如何实现它的。举个例子,在C++或Java中,可以通过在同一个作用域内...
本文实例分析了JS重载实现方法。分享给大家供大家参考,具体如下: 重载是面向对象语言里很重要的一个特性,JS中没有真正的重载,是模拟出来的(因为js是基于对象的编程语言,不是纯面向对象的,它没有真正的多态:如...
在JS中,"重载"这个概念通常指的是函数重载,即在同一个作用域内定义多个同名函数,但通过不同的参数数量或类型来实现不同的功能。虽然JavaScript不像某些静态类型的编程语言那样原生支持函数重载,但我们可以通过...
javascript不能支持函数的重载,如下: 代码如下:[removed] function f(length) { alert(“高为:”+length); } function f(length,width) { alert(“高为:”+length+”,宽为:”+width); } ...
在JavaScript中,由于其动态类型特性,函数的重载(Overload)并不像在静态类型的编程语言(如Java、C++)中那样直接支持。函数重载是指同一个函数可以根据传入参数的不同数量或类型,执行不同的操作。但在...
然而,由于JavaScript的灵活性,开发者可以通过一些技巧来模拟实现类似重载的功能。 1. **根据参数个数判断** 在JavaScript中,每个函数都有一个内置对象`arguments`,它是一个类数组对象,包含了函数调用时传入的...
本文将深入探讨如何通过修改和改进`jscroll.js`实现动态重载滚动条的功能。 首先,`jscroll.js`是一个JavaScript库,它允许开发者自定义浏览器的默认滚动条样式,提供更美观、符合设计感的滚动效果。原始的`jscroll...