Вот так делать не нужно. Подозреваю что у вас вся концепция черезтунельная. Обработчики назначаются отдельно, и данные они получают другим способом.
Нет, конечно можно сделать как-то так, но это костыль:
Object.prototype.toString=function(){
var p,s="{";
for(p in this)if(this.hasOwnProperty(p)) {s+="'"+p+"':'"+this[p]+"',"}
return s.slice(0,-1)+"}"
}
prices={cheburashka:400,ia:100,puh:300}
alert('<a onclick="show('+prices+')">')