摘要:需求需要自定義一個方法,這個方法可以像原生的一樣在開發環境我希望調用這個會輸出日志信息,生產環境我希望即使調用了這個方法,也不會輸出日志信息。
需求
需要自定義一個log方法,這個方法可以像原生的console.log一樣
在開發環境我希望調用這個log會輸出日志信息,生產環境我希望即使調用了這個方法,也不會輸出日志信息。
實現這個log可能要使用apply或者call方法
log的參數個數和類型都是不固定的
call的參數個數是固定的,要排除它
apply的參數是需要一個數組,這個合適,可以使用arguments來當做數組傳遞
代碼var MyLog = { silent: false, log: function(){ if(!this.silent){ console.log.apply(this, arguments); } } };試用
> MyLog.log(1,2,3, "4545"); 1 2 3 "4545" undefined > MyLog.silent = true true > MyLog.log(1,2,3, "4545"); undefined后記
不要隨處使用console.log,因為這樣當你不需要日志輸出的時候,你就要到處填坑了
不要使用alert,這個很煩人
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82090.html
摘要:函數柯里化是把支持多個參數的函數變成接收單一參數的函數,并返回一個函數能接收處理剩余參數,而反柯里化就是把參數全部釋放出來。但在一些復雜的業務邏輯封裝中,函數柯里化能夠為我們提供更好的應對方案,讓我們的函數更具自由度和靈活性。 showImg(https://segmentfault.com/img/bVburN1?w=800&h=600); 柯里化(Curring, 以邏輯學家Has...
摘要:返回的新函數調用時也可以向原函數傳遞實參,這里就涉及順序問題。返回的新函數被當成構造函數調用函數后返回的新函數,也可以被當做構造函數。使用,以原函數作為新對象的原型創建對象測試打印打印函數源碼已實現完成,希望對你有幫助。 bind函數 bind 函數掛在 Function 的原型上 Function.prototype.bind 創建的函數都可以直接調用 bind,使用: fu...
摘要:基本操作理解寫在前面在面向對象的語言中,關鍵字的含義是明確且具體的,即指代當前對象。一般在編譯期確定下來,或稱為編譯期綁定。全局范圍內當在全部范圍內使用,它將會指向全局對象。輸出瀏覽器中運行的腳本,這個全局對象是。 js基本操作-this理解 寫在前面 在面向對象的語言中,this關鍵字的含義是明確且具體的,即指代當前對象。一般在編譯期確定下來,或稱為編譯期綁定。而在 JavaScr...
閱讀 2102·2021-11-19 09:58
閱讀 1701·2021-11-15 11:36
閱讀 2867·2019-08-30 15:54
閱讀 3386·2019-08-29 15:07
閱讀 2759·2019-08-26 11:47
閱讀 2805·2019-08-26 10:11
閱讀 2496·2019-08-23 18:22
閱讀 2744·2019-08-23 17:58