Если вы действительно хотите сделать это так, вы можете создать анонимную функцию, которая будет возвращать вам нужную функцию:
var f1 = eval("(function() {return " + f + ";})()");
Редактировать : Или даже проще (необходимо только сделать так, чтобы браузер считал это выражением, а функция является результатом этого выражения, поэтому мы можем использовать оператор запятая ):
var f1 = eval("0, " + f);
Но вы можете рассмотреть возможность использования конструктора функции , который принимает тело функции в виде строки.