ECMA-262 mendefinisikan suatu objek sebagai: "Kumpulan atribut yang tidak tertib yang atributnya dapat berisi nilai-nilai dasar, objek atau fungsi."
Cara termudah untuk memahami suatu objek adalah dengan membuat instance suatu objek dan kemudian menambahkan properti dan metode ke dalamnya
Salinan kode adalah sebagai berikut:
var orang = objek baru ();
person.name = "xulei";
person.age = "23";
person.job = "Front-end Engineer";
person.sayname = function () {
waspada (this.name);
}
Anda juga bisa menulis ini
Salinan kode adalah sebagai berikut:
var person = {
Nama: "Xulei",
Usia: 23,
Pekerjaan: "Proyek Front-End",
SayName: function () {
waspada (this.name)
}
}
1. Jenis Atribut: Atribut Data dan akses atributnya
1. Atribut data, dengan 4 karakteristik yang menggambarkan perilaku mereka
[Dapat dikonfigurasi]: Menunjukkan apakah atribut dapat dihapus untuk mendefinisikan kembali atribut, apakah karakteristik atribut dapat dimodifikasi, atau apakah atribut dapat dimodifikasi ke atribut accessor, nilai defaultnya benar
[Enumerable]: Menunjukkan apakah atribut dapat dikembalikan melalui for-in, nilai standarnya benar
[Writable]: Menunjukkan apakah atribut dapat dimodifikasi, nilai defaultnya benar
[Nilai]: Berisi nilai data properti ini. Nilai default tidak ditentukan
Salinan kode adalah sebagai berikut:
var person = {
Nama: "Xulei"
}
Objek orang dibuat di sini, dan nilai nilainya adalah "Xulei"
Untuk memodifikasi properti default properti, objek ecmascript5.definepropery (objek tempat properti berada, nama properti, objek deskriptor) harus digunakan)
Objek deskriptor harus dapat dikonfigurasi, dinyatakan, nilainya
Salinan kode adalah sebagai berikut:
var peron = {}
Object.defineproperty (peron, "name", {
Tulisan: false, // properti tidak dapat dimodifikasi
Nilai: "Xu Lei-Xulei"
});
Peringatan (peron.name); // xulei-xulei
peron.name = "xu lei";
Peringatan (peron.name); // xulei-xulei
Operasi di atas akan diabaikan dalam mode non-ketat, dan pengecualian akan dilemparkan dalam mode ketat.
Setelah properti didefinisikan sebagai tidak dapat dikonfigurasi, itu tidak dapat diubah menjadi dapat dikonfigurasi.
Dalam kebanyakan kasus, tidak perlu memanfaatkan fitur -fitur canggih yang disediakan oleh Object.defineproperty () metode. Tetapi sangat berguna untuk memahami JavaScript.
Pembaca disarankan untuk tidak menggunakan metode ini di IE8.
2. Mengakses propertinya, ada 4 karakteristik
[Dapat dikonfigurasi]: Menunjukkan apakah atribut dapat dihapus untuk mendefinisikan kembali atribut, apakah karakteristik atribut dapat dimodifikasi, atau apakah atribut dapat dimodifikasi ke atribut accessor, nilai defaultnya benar
[Enumerable]: Menunjukkan apakah atribut dapat dikembalikan melalui for-in, nilai standarnya benar
[Get]: Fungsi dipanggil saat membaca
[Set]: Fungsi dipanggil saat menulis atribut