Javascriptのイベントを順不同で扱うことができず混乱しています。ウィンドウ/クロムでは、以下のコードは、クラスが変更される前にクラスが変更されたオブジェクトをコンソールに出力しますが、クラスだけを出力すると、変更されていないクラスが表示されます。誰かがこれを支配しているルールを説明してもらえますか?私はどのような状態で私のオブジェクトを見ることを期待するかを予測する方法を知らない。Javascriptが順序どおりに動作しない
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Table Schema</title>
</head>
<body>
<a href="#" class="first_class" onclick="checkClass(this)">I am supposed to be first_class!</a>
<script>
function checkClass(obj) {
console.log(obj);
console.log(obj.className);
if (obj.className == 'first_class') {
obj.className = 'second_class';
}
}
</script>
</body>
</html>
<html>
は私のための最初のクラスは、文字列とobjは、その時点でのスナップショットではない最新の値を示しています。 https://stackoverflow.com/questions/30150469/why-console-log-displays-incorrect-objects-values – epascarello