javascript函数可以带参数吗

JavaScript013

javascript函数可以带参数吗,第1张

javascript函数可以传递参数

给你发一个例子

<button onclick="testParam('a')">js函数传参</button>

<script type="text/javascript">

function testParam(str){

alert("按钮传的参数为:" + str)

var oStr = "test"

test(oStr)

}

function test(str){

alert("函数间传的参数为:" + str)

}

</script>

你可以直接传递函数名作为参数,只是不要加括号

function funcOne(str) {

    alert(str)

}

    

// 这里传过来 funcName 为 funcOne, param 为 funcOne 的参数

function funcTwo(funcName, param) {

    // 等于调用 funcOne("hello")

    funcName(param)

}

    

// 调用 funcTwo 函数

// 将函数 funcOne 作为参数传递给 funcTwo

funcTwo(funcOne, "hello")

在函数中,是可以使用函数名作为另一个函数的参数的,执行时相当于是对此函数的一次引用。

例如我们要创建不定参数数量的函数,最后一个参数是要执行的函数

var fn = function () {

    // 获取所有参数

    var args = [].slice.call(arguments)

    

    // 如果最后一个参数不是函数,则不继续执行下面的内容

    var caller = args.pop()

    if (typeof caller !== "function")

        return

    

    // 接下来是对所有参数进行操作

    ...

    

    // 假设操作完了之后的变量数组仍为args,把这些变量置入要执行的函数中

    caller.apply(this, args)

}