js参数是一个函数怎么做?

JavaScript030

js参数是一个函数怎么做?,第1张

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

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

var fn = function () {

    // 获取所有参数

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

    

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

    var caller = args.pop()

    if (typeof caller !== "function")

        return

    

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

    ...

    

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

    caller.apply(this, args)

}

function pageAdd(expression, oldpage, page, func) {

可行,不过需要点更改。

if (expression()) { // 表达式要执行

setTimeout(function() {

if (oldpage != page) {

oldpage = page // 这个赋值操作意义不大,因为变量的作用域只在这个pageAdd里,不会影响到顶层作用域里面的变量

func()

}

}, 250)

}

}

只需要在自定义的函数中添加参数就可以了,在函数调用的时候,传递一个参数就可以了。

无参数的自定义函数:

function a(){alert (1)}   

函数调用:

a()   //弹出一个1

修改上面的函数,变成有参数的函数:

function a(n){alert (n)}

函数调用:

a(4)   //弹出一个 4