hello 函数名,userName 变量
方法一
window.setTimeout("hello(userName)",3000);
方法二
//创建一个中间函数,用于返回一个无参数函数
function _hello(_name){
       return function(){
             hello(_name);
       }
}
window.setTimeout(_hello(userName),3000);
方法三 (推荐)
/*功能: 修改 window.setInterval ,使之可以传递参数和对象参数
* 方法: setInterval (回调函数,时间,参数1,,参数n) 参数可为对象:如数组等*/
var __sto = setInterval;
window.setInterval = function(callback,timeout,param){
    var args = Array.prototype.slice.call(arguments,2);
    var _cb = function(){
        callback.apply(null,args);
    }
    __sto(_cb,timeout);
}
window.setInterval(hello, 3000, userName);
参考:https://www.cnblogs.com/superdg003/p/5996360.html