使用别人的一些类库函数时,经常会遇到一个函数,可以使用不同个数的参数的情况
比如: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