js函数带参调用

JavaScript09

js函数带参调用,第1张

<span id="demo"></span>

<script>

var text="dffasdfasdfadsfadsfdafklsjdflkajsdf'alskdjf'asdlf" //预定文字

var delay=200 //文字出现的时间间隔

var i=0 //初始化变量 i

function scrollit(){

//设置 id 为 demo 的对象内的文字为从变量 text 的 0 开始到 i 间的文字加"_"

document.getElementById('demo').innerHTML=text.slice(0,i++)+"_"

if(i>text.length){ //当 i 大于 text 的文本长度时

i=0//重设 i 为 0,使文字重新从第一个文字出现

//延时执行scrollit()函数,delay*10是为了让显示完整文字的时间长一点

setTimeout("scrollit()",delay*10)

}

//否则在delay毫秒后再次执行scrollit()函数

else setTimeout("scrollit()",delay)

}

scrollit()//调用scrollit()函数

</script>

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

无参数的自定义函数:

function a(){alert (1)}   

函数调用:

a()   //弹出一个1

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

function a(n){alert (n)}

函数调用:

a(4)   //弹出一个 4

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

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

var fn = function () {

    // 获取所有参数

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

    

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

    var caller = args.pop()

    if (typeof caller !== "function")

        return

    

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

    ...

    

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

    caller.apply(this, args)

}