Это довольно распространено в java, но вы не можете сделать это на C #. Вы можете передавать функции или процедуры в качестве параметров:
public void myMethod(Action act)
{
act();
}
myMethod( () => Console.WriteLine("yay") );
Существует несколько (общая) версия действия (процедура с параметрами и без возвращаемого значения) и Func (функции с параметрами и возвращаемым значением).
Возвращаемое значение setInterval - это уникальный номер, который вы используете для возврата к clearInterval. Это не объект с какой-либо дополнительной информацией.
, поэтому этот код if (typeof handle_register_after_pressed.sid !== "undefined" )
не будет работать, поскольку handle_register_after_pressed.sid не будет установлен в undefined или null после того, как вы сделаете clearInterval.
Если вы хотите узнать, очищен ли интервал, вам нужно создать собственное решение, подобное ниже,
function mySetInterval(fn, interval) {
var id = setInterval(fn, interval);
this.cleared = false;
this.clear = function () {
this.cleared = true;
clearInterval(id);
};
}
, а затем вызвать его следующим образом:
var t = new mySetInterval(function () {
console.log('this is a test');
}, 5000);
console.log(t.cleared); // false
t.clear();
console.log(t.cleared); // true
Чтобы ответить на остальную часть вашего вопроса,