在瀏覽網頁的時候無意中看到一個檢測瀏覽器是否使用開發者工具方法,特此記錄
代碼示例:
1 (function(){ 2 var re=/x/; 3 var i=0; 4 console.log(re); 5 6 re.toString=function(){ 7 return '第'+(++i)+'次打開控制台' 8 } 9 })();
原理如下:
控制台輸出的內容如果是對象(包括正則表達是對象),則保留的是對象的引用,輸出的
會是對象的實時值,即對象內容被改變時,能夠反映其變化(前提是重新開啟控制台時),
實際上是沒錯關閉再開啟控制台的時候,重新調用對象的toString()方法。
這里改寫了re對象的toString方法,並用閉包保存計數器i,每次重新打開控制台toString
方法就會自動調用,並把計數器加1。
