Dalam Catatan Studi "Panduan JavaScript" kemarin 10: ECMASCRIPT 5 Model Objek yang Ditingkatkan, fenomena aneh terjadi ketika men -debug kode kode. Sekarang posting kode sumber di bawah ini:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
function person () {}
var per = orang baru;
Object.DefineproPerties (per,
{
"nama panggilan":
{
Nilai: "Tom",
Tulisan: Benar
},
"usia":
{
Nilai: 20,
dapat dikonfigurasi: false,
Tulisan: Salah
}
});
var o = objek.getOwnPropertyDescriptor (per, "julukan");
alert (json.stringify (o));
</script>
Menjalankan hasil di google:
http://img.blog.csdn.net/20140529073008296?watermark/2/text/ahr0cdovl2jsb2cuy3nkbi5uzxqv DTAXMTA0MZG0MW ==/Font/5A6L5L2T/FontSize/400/FILL/I0JBQKFCMA ==/Disolve/70/Gravity/Center
Hasil ini benar, tetapi jika Anda mengubahnya ke tempat lain, hasilnya akan berbeda
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
function person () {}
var per = orang baru;
Object.DefineproPerties (per,
{
"nama panggilan":
{
Nilai: "Tom",
Tulisan: Benar
},
"usia":
{
Nilai: 20,
dapat dikonfigurasi: false,
Tulisan: Salah
}
});
var name = Object.getOwnPropertyDescriptor (per, "julukan");
alert (json.stringify (name));
</script>
Hasil Menjalankan:
Mengapa ini? Baru saja mengubah nama variabel sederhana
Masalahnya terletak pada nama, tetapi saya tidak memahaminya. Saya mencari informasi secara online tetapi tidak memiliki hasil. Kemudian, saya pergi untuk bertanya kepada saudara senior dan menempatkan masalah di forum: http://bbs.csdn.net/topics/390799744 ?page=1#post-397474060,
Nama adalah properti jendela, yang digunakan untuk mengatur atau mengembalikan nama jendela, dan tipe data adalah string. Karena kalimat pertama adalah fungsi orang () {}, itu telah berakhir, sehingga kode berikut mungkin dalam konteks global, yaitu, menurut Anda waspada (json.stringify (name)); adalah output nama var di atas, tetapi pada kenyataannya, mungkin output window.name. Adapun output [objek objek], tipe ini adalah jenis nilai nama.