关于js计时器开始与停止的问题,求教~

window.onload=function(){
var timer=null;
var start=document.getElementById("start");
start.onclick=starton(timer);
start.onclick=stopon(timer);
}
function starton(timer){
timer=setInterval(function(){...},500);
}
function stopon(timer){
clearInterval(timer);
}

上述代码无法实现(不用直接写匿名函数的方法),应该如何改正?

 var timer=null;///////////放出来
window.onload=function(){

一个函数就行了

 <script>
    window.onload=function(){
        var timer = {};
        var start=document.getElementById("start");
        start.onclick=starton(timer);
    }
    function starton(timer) {
        return function () {
            var start = this.value == '开始'
            if (start)                timer.timer = setInterval(function () { alert(1) }, 500);
            else clearInterval(timer.timer);
            this.value = start ? '停止' : '开始';
        }
    }
</script>
<input type="button" value="开始" id="start"/>