Rumah > Artikel > hujung hadapan web > Mengapa window.console.log Hanya Tersedia Apabila Alat Pembangun Dibuka dalam IE9?
IE9's Elusive Console.log: Kehadiran Bersyarat
Dalam Internet Explorer 9, kewujudan window.console.log menampilkan teka-teki yang menarik . Artikel ini menyelidiki sifat penuh teka-teki fungsi ini dan meneroka keadaan yang mengawal kehadiran dan kelakuannya.
Window.console.log masuk IE9: Gambar Tidak Lengkap
Dalam batasan ketat IE9, fungsi window.console.log hanya diberikan akses kepada skop global jika tirai alat pembangun dipisahkan dengan anggun untuk tab tertentu. Walau bagaimanapun, manifestasi sementara ini tidak statik. Semasa anda menavigasi web tanpa sempadan, objek konsol kekal sebagai teman tetap, dengan syarat tetingkap alat pembangun anda tidak diabaikan begitu sahaja. Tetapi malangnya, tab baharu memerlukan perjanjian baharu dengan alatan pembangun untuk mendedahkan konsol yang sukar difahami.
Mengapa Tiada Harmoni dengan permohonan dan panggilan?
Teka-teki semakin mendalam apabila kami menganggap ketiadaan pelik bagi window.console.log.apply dan window.console.log.call. Perselisihan ini berpunca daripada sifat unik objek konsol sebagai objek hos, yang dengan bangganya memilih untuk tidak mewarisi daripada Object atau memperoleh kaedahnya daripada Function seperti rakan ECMAScriptnya. Malangnya, rangkulan IE9 yang tidak sempurna terhadap pematuhan objek DOM menyebabkan alat pembangun dalam keadaan terpencil, dirampas berkat yang sama yang diberikan kepada teman mereka.
A Ray of Hope: Bind to the Rescue
Walaupun had ini, secercah harapan muncul dari kedalaman Function.prototype.bind. Mantera ajaib ini memberi kuasa kepada kami untuk menjalin ikatan harmoni antara kaedah konsol dan kaedah Function.prototype. Lihatlah helah berikut:
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); //-> "thisisatest"
Dan begitulah, seni menggunakan kaedah konsol dengan sengkang Function.prototaip sihir.
Atas ialah kandungan terperinci Mengapa window.console.log Hanya Tersedia Apabila Alat Pembangun Dibuka dalam IE9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!