在JavaScript中调用匿名函数

时间:2018-08-08 02:09:38

标签: javascript anonymous-function uncaught-typeerror

我知道这可能与某人相似,但是我敢肯定,我还没有找到答案,我只想在变量中调用一个匿名函数,就像这样

me.req.ref['index']['index'] = function() {
    var a, mount;
        return {
            function: function(fout) {
                mount = new loading(fout, "flogin");
                mount.start("Login granted, redirecting..");

                a = setTimeout(function() {
                window.location.href = purl+"profile";
            }, 1000);
        }
    }
};

我想这样称呼它。

var ret;

ret = new me.req.ref[refcode][resp];
ret.function(fout);

但显示错误。

  

未捕获的TypeError:ret不是函数

我在方法loading()中实现了这一点,并且效果很好,这里是代码。

function loading(e, code) {
    var x = 0;
    return {
        start: function(str) {
            var dot, y;

            dot = [".","..","...","...."];
            y = 0;

            e.style.height = "auto";
            e.style.maxHeight = "100%";

            e.innerHTML = str+dot[y]+" ("+x+")";
            me.time.mount[code] = setInterval(function() {
                e.innerHTML = str+dot[y]+" ("+x+")";
                x++; y++;

                if(y>3) {
                    y = 0;
                }
            }, 1000);
        },
        stop: function() {
            clearInterval(me.time.mount[code]);
        }
    }
}

我叫loading()的方式是这样的。

mount = new loading(fout, me.time.code["flogin"]);
mount.start("string"); // if i want to start an loading.
mount.stop(); // if i want to shutdown the loading.

有什么解决办法吗?请帮忙。 感谢您的纠正。

1 个答案:

答案 0 :(得分:1)

好吧,这里的问题是,当ret().function(fout)ret时,调用像Object这样的方法,所以这个问题已经解决,要调用该函数,我需要编写它像这样ret.function(fout)