Rumah > hujung hadapan web > tutorial js > masalah tugasan berterusan javascript_kemahiran javascript

masalah tugasan berterusan javascript_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 15:50:50
asal
1233 orang telah melayarinya

Saya menjumpai sekeping kod ini semasa mencari soalan temu duga beberapa hari yang lalu Selepas melaksanakannya, ia berasa berbeza daripada apa yang saya jangkakan

 var a = {
   n : 1
 };
 var b = a;
 a.x = a = {n : 2};
 console.log(a.x);
 console.log(b.x);

Salin selepas log masuk

Hasil output ialah:

tidak ditentukan

[Objek objek]

Pada mulanya saya fikir pernyataan itu harus mula-mula memberikan {n : 2} kepada a, dan kemudian memberikan {n : 2} kepada a.x;

Tetapi itu tidak berlaku, jadi saya menukar kod dan menambah beberapa log

var test;
var a = {
  get test () {
    console.log("call a get");
    return test;
  },
  set test (value) {
    console.log("call a set");
    test = value;
  }
}
var test2;
var b = {
  get test2 () {
    console.log("call b get");
    return test2;
  },
  set test2 (value) {
    console.log("call b set");
    test2 = value;
  }
}
a.test = {
  n : 1
};
b.test2 = a.test;
console.log("begin");
a.test.x = a.test = {n : 2};

Salin selepas log masuk

Dengan cara ini, selepas bermula, ia akan menjadi jelas sepintas lalu apa yang tugasan ini lakukan.

Ini ialah log yang dicetak apabila pernyataan itu dilaksanakan

Pertama mendapat dicetuskan, dan kemudian satu set dicetuskan.

Saya rasa susunan pelaksanaan pernyataan ini adalah untuk mengeluarkan pembolehubah di sebelah kiri dahulu, dan kemudian melaksanakan tugasan (Sebelum melaksanakan pernyataan ini, mula-mula keluarkan rujukan objek, dan kemudian lakukan tugasan dari kanan ke kiri)


Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan