-4
私は最近、新しい放棄されたソフトウェア(より正確な製品ファミリー)の登録コードジェネレータを書いて、HTML/JavaScript。私はすべてのビジュアル要素を機能させるページのHTML側を理解しています。私が知りたいことは、すべてのJSが背後で何をしているのかということです。私はそれについて興味があった私の友人にもっと説明することができます。誰かが次のコードを私の友人に説明できる基本的なステートメントに分解できますか?私は本当に何もJSを知らないので、これは私にちょっとした情報を与えるでしょう。友人のコードのブロックを説明する方法
function generate() {
var vc = 178890;
var edition = [
[223987, 543238],
[998732, 215588],
[776490, 366591]
];
var module = [
[322547, 226789],
[632788, 129874],
[399872, 112256],
[200876, 679032],
[666634, 188897],
[877334, 766952],
[222990, 777778],
[229347, 543832]
];
var i;
var sum = 0;
var name = $('#name').val();
var addr = $('#address').val();
for (i = 0; i < name.length; i++) {
sum += name.charCodeAt(i);
}
for (i = 0; i < addr.length; i++) {
sum += addr.charCodeAt(i);
}
var s = 12*(sum + Math.floor(sum*67/12472));
if ($('#product').val() === 'avs') {
s += 886;
} else {
s += 288;
if ($('#timed').prop('checked')) {
reg = moment($('#regdate').val(), 'MM/DD/YYYY');
exp = moment($('#expdate').val(), 'MM/DD/YYYY');
var date_re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
var valid = true;
$('#invalidreg').html(reg.creationData().input.search(date_re) >= 0 && reg.isValid() ? '' : (valid = false, ' invalid date'));
if (exp.creationData().input.search(date_re) >= 0 && exp.isValid()) {
if (reg.isSameOrAfter(exp)) {
$('#invalidexp').html('expiration date should be after registration date');
valid = false;
}
else {
$('#invalidexp').html('');
}
} else {
$('#invalidexp').html('invalid date');
valid = false;
}
if (!valid) {
clear();
return;
}
var epoch = moment('1800-12-28');
s += 3*exp.diff(epoch, 'days') - 2*reg.diff(epoch, 'days') - 34;
}
}
$('#serialnum').html(67*sum);
$('#versioncode').html(vc + s);
var row = $('#edition tr:nth-child(1)');
for (i = 0; i < 3; i++) {
row.find('td:nth-child(2)').html(edition[i][0] + s);
row.find('td:nth-child(3)').html(edition[i][1] + s);
row = row.next();
}
row = $('#modules tr:nth-child(1)');
for (i = 0; i < 8; i++) {
row.find('td:nth-child(2)').html(module[i][0] + s);
row.find('td:nth-child(3)').html(module[i][1] + s);
row = row.next();
}
注:のために尋ねられたとき、これは言ったコード化されたサードパーティの開発者は、彼が1人の醜い子である
このコードを書いた人はごめんなさい、それを維持しなければならない人にはさらに残念です。それは混乱です。それを正しく説明すると、それを書き換えるよりも時間がかかります。 – Gerrit0