function.prototype.mycall = function(context)
//當傳入的context為基礎型別時,直接掛載fn會報錯,因為基礎型別沒有屬性這一說
if(typeof context !== 'object') context=new object(context);
context = context || window //context 為可選引數,如果不傳的話預設上下文為 window
context.fn = this //給 context 建立乙個 fn 屬性,並將值設定為需要呼叫的函式,因為this指向的是乙個物件,是呼叫該函式的物件,所以指向的就是我們需要呼叫的函式,因為是我們需要呼叫的函式呼叫call函式,並且將這個函式賦給了fn。
const args = [...arguments].slice(1) //call 可以傳入多個引數作為呼叫函式的引數,所以需要將引數剝離出來
const result = context.fn(...args) //因為fn被賦值成了乙個函式,函式括號內為引數,所以就可以呼叫了。
delete context.fn //呼叫函式並將物件上的函式刪除,(記住就好。)
return result
}
context.fn = this
let args = arguments[1]
let result
if (args) else
手寫bind
function.prototype.bind2 = function (obj)
var that = this;
var args = .slice.call(arguments,1);
var func = function () ;
fnop.prototype = this.prototype; //利用空函式fnop實現繼承原型鏈同時又不改變原函式的原型鏈
fbound.prototype = new fnop();
return func;
};
WordPress速度提公升之CSS和JS的合併壓縮
相信大家都很關心自己部落格的開啟速度,別說半天打不開,3秒內不能完全開啟就是一件很糾結的事情 糾結 被人傳染了 此文適合不能夠一步開啟全站壓縮的朋友,即css js 網頁等。一般我們說的壓縮就是對網頁進行gzip傳輸,檢測和開啟的方法就不囉嗦了,網上一大堆的。最開始我用 wordpress 啟用gz...
JS動態載入CSS和JS
這兩天工作時用到動態載入css和js的地方比較多,這裡稍微做下整理。if this.readystate this.readystate loaded this.readystate complete 因為在ie中使用onreadystatechange,而gecko,webkit 瀏覽器和oper...
面試之js演算法類
計算字串 現次數最多的字元及其次數 給定兩個陣列,找出第二個陣列沒有的數字 陣列的去重 利用math求最大值 9 9 乘法表 寫乙個千位分隔符新增函式,千位分隔符可以手動設定,預設文逗號 如何讓 nodelist 使用array中的map方法 不知道大小,設定,如果是長的就橫向排列,短的就縱向排列,...