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)代码>-我不明白。