IE9's Console.log: Ketersediaan dan Fungsi
Sokongan Internet Explorer 9 untuk window.console.log ialah topik yang sering menimbulkan persoalan. Artikel ini menyelidiki keadaan di mana window.console.log boleh diakses dan meneroka ketidakkonsistenan tertentu dengan window.console.log.apply dan window.console.log.call.
When Is window.console .log Ditakrifkan dalam IE9?
Dalam Internet Explorer 9 (dan 8), objek konsol muncul hanya apabila Alat Pembangun diaktifkan untuk tab tertentu. Menutup tetingkap Alat Pembangun dalam tab itu mengekalkan akses kepada objek konsol untuk halaman seterusnya. Walau bagaimanapun, membuka tab baharu memerlukan mengaktifkan Alat Pembangun secara manual untuk mendedahkan objek konsol.
Tetingkap tidak ditentukan.console.log.apply dan window.console.log.call
Objek konsol dalam IE9 bukan sebahagian daripada mana-mana standard yang ditetapkan dan dianggap sebagai lanjutan kepada DOM. Tidak seperti fungsi dan objek ECMAScript asli, objek konsol tidak disambungkan secara semula jadi kepada prototaip Objek atau kaedahnya, seperti Function.apply dan Function.call. Perbezaan ini menerangkan sebab kaedah ini tidak ditentukan untuk fungsi objek konsol dalam IE9.
Pelaksanaan Penyemak Imbas Lain
Dalam versi Internet Explorer yang kemudian, kebanyakan objek DOM mewarisi daripada ECMAScript asli jenis, meningkatkan fungsinya. Walau bagaimanapun, oleh kerana Alat Pembangun adalah lanjutan kepada IE, mereka tidak mendapat manfaat daripada penambahbaikan ini, mengakibatkan ketiadaan kaedah permohonan dan panggilan berterusan untuk fungsi objek konsol.
Menggunakan Kaedah Fungsi dengan Objek konsol Fungsi
Sementara window.console.log.apply dan window.console.log.call tidak boleh diakses secara langsung dalam IE9, masih boleh menggunakan kaedah Function.prototype melalui fungsi bind():
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); //-> "thisisatest"
Atas ialah kandungan terperinci Adakah window.console.log.apply dan window.console.log.call Ditakrifkan dalam IE9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!