js原生方法被覆蓋,從新賦值原生方法

2021-08-13 22:28:44 字數 695 閱讀 1369

js的原生方法被覆蓋掉以後,如果你還沒讓原生方法又從新指向乙個新的變數名,那就gg了。所以,關鍵就是怎麼再獲取到原生的方法。實現的原理呢就是建立乙個新的window物件,然後從新的window物件裡面獲取原生的方法,來重新賦值。

首先建立乙個iframe物件,使用document.createelement方法建立

var iframe = document.createelement("iframe");

document.body

然後,獲取到iframe裡面的window物件

var iframewin = iframe.contentwindow;
最後賦值一下,即可

window.console = iframewin.console;
window.open方法呼叫會開啟乙個新的視窗,返回乙個新的window物件,所以我們獲取window物件可以這樣獲取

var win = window.open(); //獲取物件

win.close(); //將開啟的視窗關閉

window.console = win.console;

js原生轉殖方法

為了看得清楚一點,引數變數屬性 命名都是隨意 主要思路 五點 1,遍歷物件 2,判斷是不是原始值 typeof instanceof,tostring,constructor 這些方法都可以 3,判斷是陣列還是物件 4,建立相應的陣列或物件 5,使用遞迴 var obj function copy ...

原生JS實現bind方法

bind方法建立乙個新函式。呼叫新函式時,this指向給定的物件,並且將給定的引數列表作為原函式的引數序列的前若干項。當使用new操作符建立bind函式的例項時,bind函式變成構造器,給定的物件引數失效,其餘引數仍然有效。function mybind function fn 臨時函式protot...

原生js實現offset方法

在為 jtool 提供 offset 獲取當前節點位置 方法時,先後使用了兩種方式進行實現,現整理出來以作記錄。function offset element var position getoffset element,true return offest 遞迴獲取 offset,可以考慮使用 g...