function.prototype.
mycall
=function
(context)
//獲取引數
let args=
[...arguments]
.slice(1
),result=
null
;//判斷context是否傳入,如果未傳入則設定未window
context=context||window;
//將呼叫函式設為物件的方法
context.fn=
this
;//呼叫函式
result=context.fn(
...args)
;//將屬性刪除
delete context.fn;
return result;
}
call 函式的實現步驟:1.判斷呼叫物件是否為函式,即使我們是定義在函式的原型上的,但是可能出現使用 call 等方式呼叫的情況。
2.判斷傳入上下文物件是否存在,如果不存在,則設定為 window。
3.處理傳入的引數,擷取第乙個引數後的所有引數。
4.將函式作為上下文物件的乙個屬性。
5.使用上下文物件來呼叫這個方法,並儲存返回結果。
6.刪除剛才新增的屬性。
7.返回結果。
function.prototype.
=function
(context)
let result=
null
; context=context||window;
context.fn=
this;if
(arguments[1]
)else
delete context.fn;
return result;
}
function.prototype.
mybind
=function
(context)
var args=
[...arguments]
.slice(1
),fn=
this
;return
functionfn(
)}
手寫 call apply 及 bind 函式
function.prototype.mycall function context context context window context.fn this 建立fn屬性,並將值設定為需要呼叫的函式 const args arguments slice 1 因為call可以傳入多個引數作為呼叫...
教你如何對齊!
之前利用這個框架修改公司頁面的時候,老是不對齊,經常被老闆罵了個狗血淋頭,想了兩三天沒想到好的辦法解決。本以為解決不了,後面不小心在官網看到了一小段文字後,才發現對齊如此的簡單。你只要調整行外邊距就可以隨意擴大你的最外層div。從而對齊上下文。大小什麼的,可以等對齊以後再進行製作。這樣重新上傳之後,...
教你如何減壓
我們都曾經歷過因為工作而引起的壓力,人人都逃不掉。我們可能會感到工作壓力很大,或者擔心我們的職位 我們為工作中的衝突或誤解煩惱 我們也可能發現工作難度太高,或根本沒有挑戰性。除了直接由工作帶來的壓力外,其他生活上的問題也會讓我們焦慮或擔憂,如孩子上學,父母生病,生活拮据和缺少休息時間。如果我們不能正...