function testfn(fn){
alert(fn);
};
var object = { handler: testfn("test") }; // "test"
alert( object.handler ); // undefined
Строчка 5: интерпретатор сначала выполнит функцию (мы ведь вызываем ее с помощью круглых скобок), затем присвоит свойству handler результат выполнения функции, т.е. то, что она возвращает. Если функция не возвращает ничего явно (оператор return), она неявно возвращает undefined. Соответственно, object.handler === undefined (второй alert).