`

js中同名参数个数不同的函数 多态

阅读更多

使用别人的一些类库函数时,经常会遇到一个函数,可以使用不同个数的参数的情况
比如:exp(var1)   exp(var1, var2)
像这样的形式的,js中不支持函数这样重载,但有个更方便的方法

 

说明:通过 arguments 属性,函数可以处理可变数量的参数。 arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。

 

 

/**
 * 定时显示多长时间的box
 * @param message		显示消息
 * @param displayTime	显示时间,以秒为单位,可以为小数。
 * @return				若displayTime为0,则永久显示,不合法默认显示1秒
 */
function timingBox() {
	
	// 必须有参数且不超过2个
	var arguCount = arguments.length;
	if (arguCount > 2)
		return ;
	
	var message = (arguCount > 0) ? arguments[0] : "";
	var displayTime = (arguCount > 1) ? arguments[1] : "";
	
	timingMsgBox = new Boxy("<div>" + message + "</div>", {
		title : "提示信息",
		closeText : "[关闭]",
		modal : false,
		fixed : false,
		cache : true,
		draggable : true,
		center : true,
		unloadOnHide : true
	});	
	
	// 高度自适应
	var heightRatio = Math.floor(message.length / 70);
	heightRatio = (heightRatio >= 1 ? (heightRatio + 1) : 1);
	timingMsgBox.resize(300, (50 * heightRatio));
	
	// 定时消失,为0表示不消失。默认为1秒消失
	if (displayTime != "0") {
		var legalTime = parseFloat((positiveFloatTypeRegx.exec(displayTime) ? displayTime : 1));
		setTimeout("timingMsgBox.unload();", legalTime * 1000);
	}
}
 

详细见http://www.ykjm.net/article.asp?id=254

 

 

转载自:http://www.ykjm.net/article.asp?id=254

分享到:
评论

相关推荐

    javascript 面向对象编程基础 多态

    在JavaScript中,多态的实现主要依赖于两个主要概念:原型链和函数动态绑定。原型链是JavaScript对象的内部链接,它指向另一个对象的原型。当尝试访问一个对象的属性时,如果在该对象上找不到,JavaScript会沿着原型...

    韩顺平 轻松搞定网页设计课程 JS笔记1

    方法重载是指在一个类中可以有多个同名但参数列表不同的方法。然而,JavaScript本身并不支持方法重载,但可以通过函数的动态性(如参数个数、类型检查等)模拟实现。方法覆盖是指子类对父类方法的重新定义,当子类...

    JavaScript面向对象三个基本特征实例详解【封装、继承与多态】

    而重载则是在同一作用域内,允许存在多个同名函数,但参数列表不同,这样可以根据传入的参数类型或数量调用不同的实现。在JavaScript中,由于函数是动态类型的,所以没有真正的函数重载,但可以通过判断参数类型或...

    web ajax 的使用 js封装

    函数重载是指在同一作用域内,根据参数列表的不同定义多个同名函数。类的继承允许子类继承父类的属性和方法,函数覆盖是指子类重写父类的方法。在构造函数的调用顺序上,首先是基类的构造函数,然后是派生类的构造...

    JS笔记与体验

    JavaScript中的函数是第一类公民,意味着函数可以作为变量赋值、作为参数传递和作为返回值。函数调用时会在内存中开辟新的执行上下文(栈),执行完毕后这些上下文会被销毁。这是JavaScript的调用栈(Call Stack)...

    浅谈JavaScript的函数及作用域

    函数重载是许多面向对象的编程语言中实现多态的方式之一,它允许定义多个同名函数,只要它们的参数类型或个数不同即可。然而,在JavaScript中不存在函数重载的概念。在JavaScript中,函数名是唯一的,即使参数列表...

    javascript(课件)

    - 构造方法:构造方法不可被重写(override),但可以重载(overload),即在同一个类中有多个同名但参数列表不同的构造函数。 - 重载的好处:提高代码可读性和复用性,而非提高运行速度。 - 多态性:指不同对象...

    Object-Oriented JavaScript

    - **多态**:同名的方法可以在不同的对象中有不同的表现形式。 #### 知识点二:构建可扩展且可重用的应用程序与库 - **目标**:创建高质量的JavaScript应用程序和库,使其不仅功能强大,而且易于维护和扩展。 - *...

    JAVA面试题(同名6547).docx

    方法重载是指在同一个类中有多个方法名相同但参数列表不同的方法。方法覆盖发生在子类中,子类重新定义了父类的方法,具有相同的名称、参数列表和返回类型,且子类方法可以降低访问级别。 构造函数在对象创建时自动...

    C++常见问题解答。。。。。。。。。

    成员函数可以被重载,即在同一个类中可以有多个同名的成员函数,只要它们的参数列表不同即可。编译器会根据调用函数时传递的参数类型和数量来选择合适的函数版本。 #### 21. 构造函数何时被调用? 构造函数在创建...

    理解JavaScript中的对象

    JavaScript中的多态主要表现为函数重载(根据参数不同执行不同逻辑)和函数重写(子对象覆盖父对象的同名方法)。 **内置对象类型** JavaScript提供了多种内置对象类型,包括: - String、Number、Boolean:基本...

    java基础面试题.doc

    6. 方法重载是指在同一个类中定义多个同名但参数列表不同的方法。方法覆盖(重写)是指子类重新定义父类的已有的方法,保持方法名、参数列表和返回类型的一致性。 7. 构造函数在对象创建时被调用,每个类都有构造...

    JS面向对象编程基础篇(一) 对象和构造函数实例详解

    面向对象编程(OOP)是JavaScript中的核心编程范式之一,它通过对象和构造函数来实现。对象在JavaScript中扮演着重要角色,它们是数据和功能的集合体,能够封装属性(property)和方法(method),模拟现实世界中的...

    java基础面试题2及答案.docx

    构造函数在Java中用于初始化新创建的对象,D) 正确,一个类可以有多个构造函数,以便在不同情况下初始化对象。A) 错误,如果类中没有显式定义构造函数,Java会提供一个默认的无参构造函数。B) 错误,构造函数没有...

    java期末考试复习题及答案.doc

    4. **函数重载**:允许在同一个类中存在两个或多个同名函数,但它们的参数列表不同(参数数量、类型或顺序不同),这是重载的概念(第4题)。 5. **构造函数**:构造函数用于初始化类的实例,通常与类同名,没有...

    2021-2022计算机二级等级考试试题及答案No.2692.docx

    6. **函数重载**:函数重载允许在同一作用域内声明多个同名函数,但这些函数的参数列表(参数数量或类型)必须有所不同,以区分不同的函数。 7. **CSS样式**:在CSS中,要取消超链接的下划线,可以使用`a{text-...

    TypeScript入门指南案例教程-51xuediannao.com.pdf

    TypeScript中的函数使用是基础,包括如何定义函数、传递参数以及使用this关键字等。对于复杂函数,还可以定义剩余参数和参数解构等特性。 泛型是TypeScript提供的一个高级特性,允许在定义函数、接口、类的时候不...

    csharp的概念

    多态则允许同名的方法在不同的类中有不同的实现,增强了代码的灵活性和扩展性。 面向接口(Interface-Oriented Programming)是C#中另一个重要的概念。接口定义了一组方法签名,但不包含具体实现。类可以实现一个或...

    于笑扬java综合知识点总结-必背(吐血推荐).doc

    Java多态是指在编程中可以使用同一个方法名,但根据不同的参数类型或对象类型来执行不同的操作。具体体现为: * 方法重载(Overload):同名方法可以根据参数类型的不同来执行不同的操作 * 方法重写(Override):...

Global site tag (gtag.js) - Google Analytics