Sifat pengakses objek dalam ECMAScript5: Pengenalan kepada kemahiran getter dan setters_javascript

WBOY
Lepaskan: 2016-05-16 16:28:16
asal
1829 orang telah melayarinya

Jelas sekali ini adalah topik yang tiada kaitan dengan IE (kecuali IE lanjutan, bagaimanapun, pelajar yang berminat harus berkumpul untuk belajar tentang pelaksanaan getter dan setter dalam standard ECMAScript5). Dalam objek, kaedah yang paling biasa digunakan untuk mengendalikan sifat atau kaedah ialah membaca (rujukan) dan menulis Contohnya, o.get ialah operasi baca, manakala o.set = 1 ialah operasi tulis. Malah, dalam pelaksanaan penyemak imbas arus perdana terkini kecuali IE, nilai utama mana-mana objek boleh digantikan dengan kaedah getter dan setter, yang dipanggil "atribut accessor".

Tidak syak lagi bahawa pengambil bertanggungjawab untuk menanyakan nilai Ia tidak mengambil sebarang parameter, manakala penetap bertanggungjawab untuk menetapkan nilai kunci yang dihantar dalam bentuk parameter. semua pulangan adalah tidak sah. Berbeza dengan atribut biasa, apabila atribut ingatan hanya mengisytiharkan get atau set, ia tidak boleh mempunyai kedua-dua kaedah membaca dan menulis Apabila ia hanya mempunyai kaedah pengambil, ia hanya membaca sahaja. Begitu juga, apabila ia hanya mempunyai kaedah pengambil hanya baca-sahaja Begitu juga, apabila ia hanya mempunyai kaedah pengambil, ia hanya kaedah penetap baca sahaja, maka apa yang anda baca akan sentiasa tidak ditentukan. Bagaimana untuk mengisytiharkan sifat penyimpanan objek? Cara terpantas ialah menggunakan sintaks literal objek untuk menulis Sila lihat sekeping kod berikut:

Salin kod Kod adalah seperti berikut:

var oo = {
Nama: 'Xianxin',
Dapatkan seks(){
         kembalikan 'lelaki';
}
};
//Jelas sekali ini tidak dibenarkan, kerana Xianxin tidak mahu dunia luar mengubah fakta bahawa dia adalah seorang lelaki, jadi dia hanya menetapkan fungsi baca sahaja untuk seks
oo.seks = 'wanita';
console.log(oo.sex); //Hasilnya masih lelaki

Apa yang menarik ialah ini mengubah pemahaman kita sebelum ini, iaitu kata kunci fungsi tidak digunakan semasa mentakrifkan kaedah. Malah, dapatkan atau tetapkan di sini boleh difahami sebagai fungsi dalam dua keadaan berbeza: bahagian inklusif (menulis) dan bahagian selamat (membaca) Apabila keseluruhan dipecahkan kepada bentuk yang berbeza, ini bermakna kita mungkin tidak perlu mengikuti tradisi dalam pembentangan, jadi kami tidak menggunakan titik bertindih untuk memisahkan kunci dan nilai. Jadi, teruskan dengan contoh di atas. Bagaimanakah anda boleh membaca dan menulis berdasarkan atribut ingatan Mungkin perenggan berikut akan memberi anda jawapan:

Salin kod Kod adalah seperti berikut:

var oo = {
Nama: 'Xianxin',
Dapatkan seks(){
Jika(ini.sexx){
               kembalikan ini.sexx;          }lain{
               kembalikan 'lelaki'; }
}, tetapkan jantina(val){
This.sexx = val; }
};
//Oh, dia sangat bertolak ansur sehinggakan walaupun orang menukar jantinanya, dia akan menerimanya
oo.seks = 'wanita';
console.log(oo.sex); //Hasil wanita



Mungkin anda akan fikir ini tidak perlu, kerana kita boleh mengabaikan sepenuhnya get dan set dan terus membiarkan kaedah seks mempunyai dua kebenaran. Tetapi sebab mengapa kami memisahkan dapatkan dan tetapkan adalah untuk memahami dengan lebih jelas tafsiran ECMAScript5 yang lebih ketat mengenai operasi nilai kunci objek JavaScript. Sudah tentu, di China, yang dicemari oleh IE, teknologi arus perdana sentiasa kelihatan tidak sesuai dalam pembangunan projek sebenar, anda mungkin tidak pernah menggunakan get dan set, tetapi siapa yang boleh menjamin bahawa mereka tidak akan melakukannya pada masa hadapan...
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