Запостил в оффтоп (мне кажется, так правильней), если неправ - перенесите... Делал для себя, считайте. Ну, и просто на посмотреть выложил...
Варианты:
Классический (собственно, настоящий квайн, соответствующий
определению, хоть и безо всяких изысков):
a="'";s='a="";s=;alert(s.substring(0,3)+a+s.substring(3,7)+a+s+a+s.substring(7))';alert(s.substring(0,3)+a+s.substring(3,7)+a+s+a+s.substring(7))
Вариант, который не совсем соответствует строгому определению квайна (согласно книге "Этюды для программистов") - с использованием toString:
(function (){
alert("(" + arguments.callee.toString() + ")()");
})();
*результат toString может отличаться в разных браузерах. Этот вариант работает в ff (8, но я думаю, и в остальных версиях тоже). Не проверял.
Можно ещё с помощью eval сделать, но лень)