Inconsistent referencing behaviour

Can any one tell me why the listenerevent functions seem to be inconsistent. The second one works. The first one doesn’t, complaining about a NULL parameter being passed to navigateToURL. I used to have the links in an array, and as you can see by my commented out code, I wanted to loop this. Any help here?

var links1 = new URLRequest("link1.html");
var links2 = new URLRequest("link2.html");
var links3 = new URLRequest("link3.html");
var links4 = new URLRequest("link4.html");

//for (y=1;y<=(numbut/2);y++)
//{
//    this["btnr"+y].addEventListener(MouseEvent.CLICK, function (){navigateToURL(links1, '_self')});
//    this["btnr"+(y+(numbut/2))].addEventListener(MouseEvent.CLICK, function (){navigateToURL(links1, '_self')});
//}    
    this["btnr1"].addEventListener(MouseEvent.CLICK, function (){navigateToURL(this["links"+1], '_self')});
    this["btnr5"].addEventListener(MouseEvent.CLICK, function (){navigateToURL(links1, '_self')});