Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的匿名函数调用_Javascript_Anonymous Function_Typeerror - Fatal编程技术网

javascript中的匿名函数调用

javascript中的匿名函数调用,javascript,anonymous-function,typeerror,Javascript,Anonymous Function,Typeerror,我知道这可能与某人相似,但我确定,我还没有找到答案,我只想调用变量中的匿名函数,就像这样 me.req.ref['index']['index'] = function() { var a, mount; return { function: function(fout) { mount = new loading(fout, "flogin"); mount.start("Login

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

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);
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.
但它显示了一个错误

未捕获类型错误: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]);
        }
    }
}
我调用
load()
的方式如下

var ret;

ret = new me.req.ref[refcode][resp];
ret.function(fout);
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.
有解决办法吗?请帮忙。
谢谢您的更正。

好的,这里的问题是调用类似于
ret().function(fout)
的方法,当
ret
是一个
对象时,这个问题得到了回答,要调用函数,我需要像这样编写
ret.function(fout)
,您确定这就是您遇到的错误吗?您在显示的代码中没有任何地方调用
ret
。此外,如果您这样做,这将是显而易见的,因为
ret
应该是一个对象,对吗?从技术上讲,调用函数的方式没有问题,只要
ret
对象上实际有绑定到函数的键
function
,它就应该工作。调试时,是否定义了
ret
对象?
ret.function
是否已定义?在您的第一个代码块中,您绑定到
me.req.ref['index']['index']
,当您调用它时,它是
refcode
,并且
resp
等于
'index'
?@ASDFGerta正确,但是当我调用它时,它被称为
不是一个函数
@SimonK,代码块已经是连续的。当然,
refcode
resp
的“索引”
。但是
ret
不应该是一个函数,从您的代码来看,
ret
应该是一个对象,具有一个名为“function”的属性,这是一个函数。这就是为什么要执行
ret.function(fout)-我不明白。