Mengapa Sifat Dinamakan dalam Tatasusunan Berkelakuan Seperti Objek
JavaScript membenarkan fleksibiliti dalam menetapkan sifat kepada pelbagai struktur data, termasuk tatasusunan. Walaupun tatasusunan secara tradisinya memegang elemen yang diindeks secara berangka, anda boleh menambahkan sifat yang dinamakan padanya juga, menjadikannya menyerupai objek.
Dalam contoh yang diberikan, kedua-dua coretan kod memberikan nilai kepada sifat yang dinamakan dalam tatasusunan:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; var myObject = {'A': 'Athens', 'B':'Berlin'};
Walaupun kedua-dua kaedah kelihatan setara dan menghasilkan objek dengan jenis yang sama, terdapat asas perbezaan.
Sifat Tatasusunan lwn. Sifat Objek
Tatasusunan direka untuk data yang diindeks secara berangka dan menambah kekunci bukan angka mengganggu kefungsian yang dimaksudkan. Walaupun nampaknya sifat yang dinamakan ditambah dengan lancar, ia sebenarnya wujud sebagai sifat pada objek tatasusunan, bukan sebagai elemen dalam tatasusunan.
Kesan pada Panjang Tatasusunan
Percanggahan ini jelas apabila menyemak sifat panjang tatasusunan, yang mengembalikan bilangan elemen dalam tatasusunan. Apabila menambah sifat bernama pada tatasusunan, ia tidak mengubah panjang tatasusunan. Sebagai contoh, dalam kod berikut:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; alert(myArray.length);
Isyarat akan memaparkan '0' kerana tiada unsur telah ditambahkan pada tatasusunan, hanya sifat pada objek tatasusunan. Tingkah laku ini berbeza daripada objek, di mana penambahan kekunci bukan angka tidak menjejaskan sifat panjang.
Oleh itu, walaupun mungkin mudah untuk menambah sifat yang dinamakan pada tatasusunan, adalah penting untuk memahami had dan perbezaan potensi daripada tradisional tingkah laku objek. Untuk data bukan angka yang diindeks, objek hendaklah digunakan sebaliknya untuk memastikan kefungsian yang betul dan mengelakkan hasil yang tidak dijangka.
Atas ialah kandungan terperinci Mengapa Sifat Dinamakan dalam Tatasusunan JavaScript Tidak Mempengaruhi Panjangnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!