Pengenalan kepada kaedah membaca dan menulis sifat objek dalam kemahiran JavaScript_javascript

WBOY
Lepaskan: 2016-05-16 16:23:09
asal
1485 orang telah melayarinya

Dalam JavaScript, anda boleh menggunakan operator titik "." atau operator kurungan "[]" untuk membaca dan menulis sifat objek:


Salin kod Kod adalah seperti berikut:

var o = {x:1, y:2};
console.log(o.x);//1
console.log(o["y"]);//2
o.y = 7;
console.log(o["y"]);//7


Perlu diingat bahawa jika operator kurungan segi empat sama digunakan, jenis nilai dalam operator mestilah rentetan atau ungkapan yang boleh ditukar kepada rentetan:


Salin kod Kod adalah seperti berikut:

console.log(o[y]);//ReferenceError: y tidak ditakrifkan
var v = "y";
console.log(o[v]);//7


Tidak seperti bahasa Java, sifat objek dalam JavaScript boleh ditambah atau dipadamkan secara dinamik. Apabila memberikan nilai kepada harta, jika harta itu tidak wujud, JavaScript akan menambahkan sifat secara dinamik pada objek:


Salin kod Kod adalah seperti berikut:

o.z = 99;
console.log(o);//Objek {x=1, y=7, z=99}

Membaca harta dalam rantaian warisan prototaip

Semua objek dalam JavaScript mempunyai objek prototaip dan mewarisi sifat daripada objek prototaip oleh itu, sifat objek dalam JS dibahagikan kepada dua kategori utama:

1. Harta yang dimiliki oleh objek itu sendiri (“Harta Sendiri”).
2. Harta yang diwarisi daripada objek prototaip.

Apabila membaca sifat objek, peraturan yang diikuti adalah seperti berikut:

1. Cari harta yang perlu dibaca daripada koleksi harta benda itu sendiri ("Harta Sendiri");
2. Jika harta itu tidak boleh dicari daripada koleksi harta benda sendiri ("Harta Sendiri"), maka carian diteruskan dari rantai prototaip objek sehingga harta itu dicari dan nilainya dikembalikan.
3. Jika harta itu tidak boleh dicari daripada koleksi harta benda sendiri ("Harta Sendiri") atau daripada semua objek prototaip objek, undefined dikembalikan.

Penulisan sifat dalam rantaian warisan prototaip

Apabila menulis pada sifat objek JavaScript, peraturan yang diikuti adalah seperti berikut:

1. Jika objek itu sendiri mempunyai sifat dan harta itu boleh ditulis, tulis nilai baharu pada harta itu. Jika harta itu baca sahaja, ralat akan dilaporkan.
2. Jika objek itu sendiri tidak mempunyai harta, dan harta itu tidak wujud dalam semua objek prototaipnya, tambahkan harta itu pada objek.
3. Jika objek itu sendiri tidak mempunyai harta, tetapi harta itu wujud dalam objek prototaipnya dan boleh ditulis, maka JS akan mencipta harta baharu dalam objek itu, iaitu objek itu menimpa harta itu dalam objek prototaipnya. Nilai sifat ini dalam objek prototaip kekal tidak berubah.
4. Jika objek itu sendiri tidak mempunyai harta, tetapi harta itu wujud dalam objek prototaipnya dan dibaca sahaja, ralat akan dilaporkan.
5. Jika objek itu sendiri tidak mempunyai harta, tetapi kaedah penetap harta wujud dalam objek prototaipnya, maka JS akan memanggil kaedah penetap dalam objek prototaip. Perlu diingat bahawa apabila menjalankan kaedah penetap, jika tugasan pembolehubah terlibat, operasi tugasan akan bertindak pada objek itu sendiri, dan objek prototaip tidak akan diubah dalam apa jua cara. Tingkah laku ini boleh difahami sebagai: objek mewarisi fungsi setter daripada prototaip dan melaksanakannya.

Ia boleh didapati daripada peraturan di atas bahawa jika operasi penetapan kepada harta itu berjaya, perkara terakhir yang perlu diubah suai akan sentiasa menjadi objek itu sendiri, dan objek prototaip prototaipnya tidak akan diubah dalam apa jua cara.

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!