关于JS定时器的问题

刚刚测试了下setInterval和setTimeout,clearInterval, 有如下代码:

 function a(){ 
      var end = setInterval(f,1000);
      setTimeout(clearInterval(end),10000); 
} 

在调用a()的时候,浏览器没有反应,也没有报错,后来把代码改成如下形式:

 function a(){ 
      var end = setInterval(f,1000);
      setTimeout(function(){clearInterval(end)},10000); 
} 

重新 调用a(),一切正常,这是怎么回事

setTimeout 第一个参数要个函数对象做参数,

clearInterval(end)

这个是句语句,不是函数对象。

clearInterval(end) 是表达式;

setTimeout(方法);

可以这样:
setTimeout(function aaa(){ ....});
也可以:
setTimeout(aaa);
function aaa(){

}