Именно, потому что платформа требует, чтобы два объекта были тем же, должен иметь тот же хэш-код. Если Вы переопределяете, равняется методу, чтобы сделать, специальное сравнение двух объектов и двух объектов считает тем же метод, то хэш-код двух объектов должен также быть тем же. (Словари и Хеш-таблицы полагаются на этот принцип).
Да. Скопируйте / вставьте сюда: http://jsbeautifier.org/
Это только переформатирует макет. Вы не можете восстановить имена переменных / функций.
Связано с MetaSO : Можно ли получить не обфусцированную версию объекта голосования?
Я кое-что думаю например, Eclipse может автоматически форматировать его за вас. Однако не сможет вернуть ни одно из исходных имен переменных.
Если вы пытаетесь увидеть исходные переменные, используемые для описания кода, то нет. Вы всегда можете найти время, чтобы пропустить его через средство форматирования, чтобы облегчить визуальное чтение, но имена переменных и функций потеряны навсегда.
In в вашем конкретном примере, вы сможете его распаковать.
Обратите внимание, однако, что большинство компрессоров переименовывают переменные. В этот момент код IMO больше не читается человеком.
var vote = function() {
var k = {
informModerator: -1,
undoMod: 0,
acceptedByOwner: 1,
upMod: 2,
downMod: 3,
offensive: 4,
favorite: 5,
close: 6,
reopen: 7,
deletion: 10,
undeletion: 11,
spam: 12
};
var f = imagePath + "vote-arrow-down.png";
var c = imagePath + "vote-arrow-down-on.png";
var x = imagePath + "vote-arrow-up.png";
var w = imagePath + "vote-arrow-up-on.png";
var A = imagePath + "vote-favorite-on.png";
var o = imagePath + "vote-favorite-off.png";
var l = function() {
var C = '<a href="/users/login?returnurl=' + escape(document.location) + '">login or register</a>';
$("div.vote").find("img").not(".vote-accepted").unbind("click").click(function(D) {
u($(D.target), "Please " + C + " to use voting.")
});
z().unbind("click").click(function(D) {
u($(D.target), "Please " + C + " to flag this post.")
})
};
var B = function(C) {
if (!C) {
C = "div.vote"
}
$(C).find("img.vote-")
};