Properti objek dalam ES5 dapat dibagi menjadi 'atribut data' dan 'atribut aksesor'.
Atribut data umumnya digunakan untuk menyimpan nilai data. Atribut Accessor sesuai dengan operasi SET/GET, dan nilai data tidak dapat disimpan secara langsung.
Karakteristik Atribut Data: Nilai, Tulisan, Terkali, Dapat Dikonfigurasi.
Penjelasan: Konfigurasi: Benar/Salah, apakah atribut dapat dihapus melalui Hapus, apakah karakteristik atribut dapat dimodifikasi, dan apakah atribut dapat dimodifikasi ke atribut Accessor, default false;
Hancur: Benar/Salah, apakah itu dapat dikembalikan melalui for in loop, default false;
Tulisan: Benar/Salah, apakah nilai atribut dapat dimodifikasi, standarnya false;
Nilai: Tidak ditentukan, atur nilai properti, default tidak ditentukan.
Atribut Accessor: Atur, dapatkan, dapat dihiasi, dapat dikonfigurasi.
Penjelasan: Konfigurasi: Benar/Salah, apakah atribut dapat dihapus melalui Hapus, apakah karakteristik atribut dapat dimodifikasi, dan apakah atribut dapat dimodifikasi ke atribut Accessor, default false;
Hancur: Benar/Salah, apakah itu dapat dikembalikan melalui for in loop, default false;
Set: Fungsi, Fungsi Dipanggil Saat Membaca Nilai Properti;
Dapatkan: Fungsi, fungsi dipanggil saat memodifikasi nilai properti.
Tambahkan properti ke objek atau memodifikasi properti dari properti yang ada menggunakan objek.defineproperty () atau objek.defineproPerties () metode;
Object.defineproperty (Object, PropertyName, Descriptor):
Penjelasan Parameter: Objek: Suatu objek yang perlu menambah atau memodifikasi atribut;
PropertieName: Nama properti, format string;
Deskriptor: Deskripsi atribut, pengaturan properti atribut data atau atribut aksesor.
Analisis contoh:
Properti Data:
var emp = {name: 'tom'}; Object.defineproperty (emp, 'name', {writable: false}); emp.name = 'jery'; console.log (emp.name); // output tom, karena writable telah ditetapkan ke falseObject.defineproperty (emp, 'usia', {dapat dikonfigurasi: false, true, value: value: value: 22 emput. Nilai diatur ke 22emp.age = 25; console.log (emp.age); // output 25, pengaturan wruedelete emp.age; console.log (emp.age); // output 25, dapat dikonfigurasi diatur ke false, properti ini tidak dapat dihapusProperti Accessor:
var emp = {_ nama: 'tom', _ usia: 20}; objek.defineproperty (emp, 'name', {get: function () {return this._name;}}); console.log (emp.name); // output tom, kembalikan nilai _name dengan metode get emp.name); Tanpa metode yang ditetapkan, nilai _name tidak dapat dimodifikasi objek.definepropery (emp, 'usia', {dapat dikonfigurasi: true, get: function () {return this._age;} set: function (usia) {this.age = usia;}}); emp.age = 25; console.log (emp.age)/output; output; emp.age adalah untuk membaca _age menggunakan metode get hapus emp.age; console.log (emp.age); // output tidak ditentukan, dapat dikonfigurasi adalah benar, Anda dapat menggunakan metode hapus untuk menghapus atribut emp.ageCatatan: Atribut Accessor dapat memainkan peran yang baik dalam melindunginya. Ketika hanya ada metode GET, itu hanya baca dan tidak bisa menulis; Sebaliknya, ketika hanya ada set, itu hanya bisa menulis tetapi tidak dibaca.
Di atas adalah diskusi singkat dari atribut data JavaScript dan atribut aksesor yang dibawa oleh editor kepada Anda. Saya harap semua orang akan mendukung wulin.com lebih banyak ~