Jelas ini adalah topik yang tidak relevan dengan IE (kecuali untuk IE lanjutan). Meskipun demikian, siswa yang tertarik harus belajar tentang implementasi getters dan setter dalam standar ECMASCRIPT5. Dalam suatu objek, operasi properti atau metode yang paling umum digunakan dibaca (referensi) dan tulis. Misalnya, o.get, yang merupakan operasi baca, dan o.set = 1 adalah operasi tulis. Faktanya, dalam implementasi browser arus utama terbaru kecuali IE, nilai kunci dari objek apa pun dapat diganti dengan metode Getter dan Setter, yang disebut "Atribut Accessor".
Tidak ada keraguan bahwa Getter bertanggung jawab untuk meminta nilai, tidak mengambil parameter apa pun, dan Setter bertanggung jawab untuk menetapkan nilai kunci. Nilai diteruskan dalam bentuk parameter. Dalam tubuh fungsinya, semua pengembalian tidak valid. Tidak seperti properti biasa, ketika hanya Get atau Set dinyatakan, properti memori tidak dapat membaca dan menulis. Ketika hanya memiliki metode pengambil, itu hanya dibaca. Demikian pula, ketika hanya memiliki metode setter, maka apa yang Anda baca selalu tidak terdefinisi. Bagaimana cara mendeklarasikan atribut memori objek? Cara tercepat adalah dengan menggunakan sintaks dari objek literal untuk menulis. Silakan lihat kode berikut:
Salinan kode adalah sebagai berikut:
var oo = {
Nama: 'Xianxin',
Dapatkan seks () {
mengembalikan 'pria';
}
};
// Jelas ini tidak diperbolehkan, karena Xianxin tidak ingin dunia luar mengubah fakta bahwa dia adalah seorang pria, jadi hanya fungsi baca-hanya yang ditetapkan untuk seks.
oo.sex = 'wanita';
console.log (oo.sex); // Hasilnya masih laki -laki
Menariknya, ini merongrong pemahaman kami sebelumnya, yaitu kata kunci fungsi tidak digunakan saat mendefinisikan metode. Bahkan, dapatkan atau setel di sini, Anda dapat memahaminya sebagai fungsi di dua negara bagian yang berbeda: sisi inklusif (tulis), sisi aman (baca), ketika keseluruhan dipotong -potong menjadi bentuk yang berbeda, itu berarti bahwa kita mungkin tidak perlu lagi mengikuti tradisi dalam hal ekspresi, jadi kita tidak menggunakan kolon untuk memisahkan kunci dan nilai. Kemudian, lanjutkan dengan contoh di atas. Bagaimana Anda bisa membaca dan menulis berdasarkan properti memori? Mungkin paragraf berikut akan memberi Anda jawabannya:
Salinan kode adalah sebagai berikut:
var oo = {
Nama: 'Xianxin',
Dapatkan seks () {
if (this.sexx) {
kembalikan this.sexx;
}kalau tidak{
mengembalikan 'pria';
}
}, atur sex (val) {
this.sexx = val;
}
};
// Oh, dia sangat toleran sehingga bahkan orang mengubah jenis kelaminnya, dia menerimanya.
oo.sex = 'wanita';
console.log (oo.sex); // Hasil wanita
Mungkin Anda akan berpikir ini tidak perlu, karena kami dapat sepenuhnya mengabaikan Get dan Set dan langsung membiarkan metode seks memiliki dua izin. Tetapi alasan mengapa kami mengambil dan mengatur secara terpisah adalah untuk memahami dengan lebih jelas operasi nilai kunci ecmascript5 pada objek JavaScript, interpretasi yang lebih ketat. Tentu saja, di Cina yang tercemar oleh IE, teknologi utama baru selalu tampak tidak pada tempatnya. Dalam pengembangan proyek yang sebenarnya, Anda mungkin tidak pernah menggunakan Get and Set, tetapi siapa yang dapat menjamin bahwa Anda tidak akan melakukannya di masa depan ...