JavaScript中的动态参数

JavaScript中的函数参数是动态的,我们既可以一开始就定义好,也可以在函数体中进行重载。

我们可以利用 arguments 对象来管理动态参数。

下面举个例子:

function doAdd() {
            if (arguments.length == 0) {
                alert("You must input at least one argument!");
            } else if (arguments.length == 1) {
                alert("Result: " + arguments[0]);
            } else if (arguments.length == 2) {
                alert("Result: " + (arguments[0] + arguments[1]));
            } else {
                alert("Too many arguments!");
            }
        }

 

上面的doAdd()函数我们利用arguments对象在函数内部进行了重载,考虑了各种情况,因此在调用端我们可以

如下各种调用:

window.onload = function() {
            doAdd();
            doAdd(10);
            doAdd(20,30);
            doAdd(10,20,30);
  }

 

输出的结果依次为:

 You must input at least one argument!

Result: 10

Result: 50

Too many arguments!

时间: 2024-11-03 07:07:44

JavaScript中的动态参数的相关文章

javascript中函数作为参数调用的方法_javascript技巧

本文实例讲述了javascript中函数作为参数调用的方法.分享给大家供大家参考.具体分析如下: 先来看示例: function Map(){ var obj = {}; this.put = function(key, value){ obj[key] = value; } this.eachMap = function(fn){ for(var attr in obj){ fn(attr, obj[attr]); } } } var m = new Map(); m.put('01', 'a

javascript中自定义函数参数添加默认值实现方法

最近在Codewars上面看到一道很好的题目,要求用JS写一个函数defaultArguments,用来给指定的函数的某些参数添加默认值.举例来说就是: // foo函数有一个参数,名为xvar foo_ = defaultArguments(foo, {x:3});// foo_是一个函数,调用它会返回foo函数的结果,同时x具有默认值3 下面是一个具体的例子: function add(a, b) {return a+b;} // 给add函数的参数b添加默认值3 var add_ = de

Javascript中验证输入参数

javascript Javascript的函数声明中的参数列表并不意味着什么--它们纯粹是为了方便访问这些参数而放在那里的,而并没有限制调用者怎么传参数,调用者想怎么传就怎么传,只要脚本不出错-- 所有,有时候为了保证程序的健壮性,需要实现输入参数的验证和默认的输入参数.这几天学习的过程中恰好写了一些简单的解决方案,放在这里做备份. 首先是验证类型的合法性: function validateType( obj, type) {  if (!(obj instanceof type)) {  

javascript中通过arguments参数伪装方法重载

 在很多面向对象的高级语言中,都有方法的重载.而javascript没有方法重载这个概念.但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 代码如下: //表面上没有声明形式参数的函数 function fun() { alert("示例代码"); } fun("小明", 100, true);//自己写了三个实际参数 通过结果我们看到,即使我们声明函数的时候没有定义形式参数,在调用方法的时候,我们也是可以写实际参数的.(实

探讨JavaScript中的Rest参数和参数默认值_基础知识

Rest 参数 通常,我们需要创建一个可变参数的函数,可变参数是指函数可以接受任意数量的参数.例如,String.prototype.concat 可以接受任何数量的字符串作为参数.使用 Rest 参数,ES6 为我们提供一种新的方式来创建可变参数的函数. 我们来实现一个示例函数 containsAll,用于检查一个字符串中是否包含某些子字符串.例如,containsAll("banana", "b", "nan") 将返回true,contai

深入学习JavaScript中的Rest参数和参数默认值_基础知识

本文将讨论使 JavaScript 函数更有表现力的两个特性:Rest 参数和参数默认值.Rest 参数 通常,我们需要创建一个可变参数的函数,可变参数是指函数可以接受任意数量的参数.例如,String.prototype.concat 可以接受任何数量的字符串作为参数.使用 Rest 参数,ES6 为我们提供一种新的方式来创建可变参数的函数. 我们来实现一个示例函数 containsAll,用于检查一个字符串中是否包含某些子字符串.例如,containsAll("banana", &

Javascript中的默认参数详解_基础知识

一些语言--像Ruby,CoffeeScript及即将到来的javascript版本--在定义一个函数的时候,可以声明默认参数,像下面这样: 复制代码 代码如下: function myFunc(param1, param2 = "second string") {     console.log(param1, param2); } // Outputs: "first string" and "second string" myFunc(&q

javascript中通过arguments参数伪装方法重载_javascript技巧

在很多面向对象的高级语言中,都有方法的重载.而javascript没有方法重载这个概念.但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 复制代码 代码如下: //表面上没有声明形式参数的函数 function fun() { alert("示例代码"); } fun("小明", 100, true);//自己写了三个实际参数 通过结果我们看到,即使我们声明函数的时候没有定义形式参数,在调用方法的时候,我们也是可以写实际参数

JavaScript中函数的参数学习笔记

 我们之前写的函数并没有给它传参,其实所谓的传参就是将参数传给函数,然后函数在内部做一些处理,那么如何给参数传参呢,其实函数后面的括号里面就是放参数的,下面举个例子:  代码如下 复制代码 function sum(a, b) {  alert(a+b); } sum(12, 5); 上面的函数中,给sum设置了2个参数a和b,当调用sum时,传递了2个参数给函数,这时a就变为了12,b就变为了5,函数体内的也要变.a和b就起到一个占位符的作用,就好像你和同学去食堂打饭,突然想到早上吃饭看见饭卡