Mengapakah Tatasusunan Objek Dianggap sebagai \'Objek\' dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-11-04 08:56:02
asal
486 orang telah melayarinya

Why is an Array of Objects Considered an

Apa yang Berlaku: Jenis "Objek" untuk Tatasusunan Objek

Dalam JavaScript, fenomena yang tidak dijangka berlaku apabila tatasusunan mengandungi objek. Daripada diklasifikasikan sebagai "tatasusunan", ia dilabelkan sebagai "objek." Tingkah laku ini menjadi jelas dalam situasi seperti yang digambarkan di bawah:

<code class="javascript">$.ajax({
    url: 'http://api.twitter.com/1/statuses/user_timeline.json',
    data: { screen_name: 'mick__romney'},
    dataType: 'jsonp',
    success: function(data) {
        console.dir(data); //Array[20]
        alert(typeof data); //Object
    }
});
​</code>
Salin selepas log masuk

Mengapa Kekeliruan?

Sebab di sebalik kelakuan aneh ini terletak pada JavaScript's仕様. Secara lalai, Array dianggap sebagai jenis "objek", walaupun ia mewakili senarai nilai tersusun. Ini bermakna semua tatasusunan, termasuk yang mengandungi objek, mewarisi sifat dan kefungsian jenis Objek.

Mengenal pasti Tatasusunan

Untuk menentukan sama ada pembolehubah ialah tatasusunan sebenar , beberapa pendekatan boleh diambil:

<code class="javascript">var isArr = data instanceof Array;
var isArr = Array.isArray(data);</code>
Salin selepas log masuk

Walau bagaimanapun, kaedah yang paling boleh dipercayai melibatkan pemeriksaan rantaian prototaip pembolehubah:

<code class="javascript">isArr = Object.prototype.toString.call(data) == '[object Array]';</code>
Salin selepas log masuk

Menggunakan jQuery

Bagi mereka yang menggunakan jQuery, fungsi isArray khusus tersedia:

<code class="javascript">var isArr = $.isArray(data);</code>
Salin selepas log masuk

Dengan menggunakan kaedah ini, pembangun boleh mengkategorikan pembolehubah dengan tepat sebagai tatasusunan, walaupun ia mengandungi objek, memastikan pengendalian dan manipulasi data mereka dengan tepat .

Atas ialah kandungan terperinci Mengapakah Tatasusunan Objek Dianggap sebagai \'Objek\' dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan