zuerst, dann ist es 'SetTimeout'
Sekunden, keine Zeichenfolge übergeben. Die wirkliche Lösung hängt vom Rest des Codes ab. Robusteste Art und Weise zu stoppen den Anwendungsbereich wäre:
var obj_array = something;
function trap(obj)
{
function exec() { foo(obj); }
return exec;
}
setTimeout(trap(obj_array), 1000);
Falle gibt eine Funktion, die das Array in ihrem Umfang gefangen hat.
var obj_array = something;
function trap()
{
function exec() { foo(obj_array); }
return exec;
}
setTimeout(trap(), 1000);
oder sogar:
var obj_array = something;
function trap()
{
foo(obj_array);
}
setTimeout(trap, 1000);
und schließlich kondensiert bis:
var obj_array = something;
setTimeout(function() { foo(object_array); }, 1000);
EDIT Dies ist eine generische Funktion, aber es spezifisch für Ihr Problem zu machen, kann es vereinfacht werden : Meine Funktionen (oder mindestens 1 Iteration von ihnen fand ich in einem Backup hier)
Function.prototype.createDelegate = function(inst, args) {
var me = this;
var delegate = function() { me.apply(inst, arguments); }
return args ? delegate.createAutoDelegate.apply(delegate,args) : delegate;
};
Function.prototype.createAutoDelegate = function() {
var args = arguments;
var me = this;
return function() { me.apply({}, args); }
};
Gegeben:
function test(a, b) { alert(a + b); }
ANWENDUNG:
setTimeout(test.createAutoDelegate(1, 2), 1000);
oder verschenkt:
var o = { a:1, go : function(b) { alert(b + this.a); }}
ANWENDUNG:
setTimeout(o.go.createDelegate(o,[5]), 1000);
//or
setTimeout(o.go.createDelegate(o).createAutoDelegate(5), 1000);
ist es möglich, in setInterval() – coderex
Ja, es ist possble und das ist der beste Weg, es – CMS
@CMS zu tun: es funktioniert dank :-) – coderex