摘要:需求需要自定義一個方法,這個方法可以像原生的一樣在開發(fā)環(huán)境我希望調(diào)用這個會輸出日志信息,生產(chǎn)環(huán)境我希望即使調(diào)用了這個方法,也不會輸出日志信息。
需求
需要自定義一個log方法,這個方法可以像原生的console.log一樣
在開發(fā)環(huán)境我希望調(diào)用這個log會輸出日志信息,生產(chǎn)環(huán)境我希望即使調(diào)用了這個方法,也不會輸出日志信息。
實現(xiàn)這個log可能要使用apply或者call方法
log的參數(shù)個數(shù)和類型都是不固定的
call的參數(shù)個數(shù)是固定的,要排除它
apply的參數(shù)是需要一個數(shù)組,這個合適,可以使用arguments來當(dāng)做數(shù)組傳遞
代碼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,因為這樣當(dāng)你不需要日志輸出的時候,你就要到處填坑了
不要使用alert,這個很煩人
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/82090.html
摘要:函數(shù)柯里化是把支持多個參數(shù)的函數(shù)變成接收單一參數(shù)的函數(shù),并返回一個函數(shù)能接收處理剩余參數(shù),而反柯里化就是把參數(shù)全部釋放出來。但在一些復(fù)雜的業(yè)務(wù)邏輯封裝中,函數(shù)柯里化能夠為我們提供更好的應(yīng)對方案,讓我們的函數(shù)更具自由度和靈活性。 showImg(https://segmentfault.com/img/bVburN1?w=800&h=600); 柯里化(Curring, 以邏輯學(xué)家Has...
摘要:返回的新函數(shù)調(diào)用時也可以向原函數(shù)傳遞實參,這里就涉及順序問題。返回的新函數(shù)被當(dāng)成構(gòu)造函數(shù)調(diào)用函數(shù)后返回的新函數(shù),也可以被當(dāng)做構(gòu)造函數(shù)。使用,以原函數(shù)作為新對象的原型創(chuàng)建對象測試打印打印函數(shù)源碼已實現(xiàn)完成,希望對你有幫助。 bind函數(shù) bind 函數(shù)掛在 Function 的原型上 Function.prototype.bind 創(chuàng)建的函數(shù)都可以直接調(diào)用 bind,使用: fu...
摘要:基本操作理解寫在前面在面向?qū)ο蟮恼Z言中,關(guān)鍵字的含義是明確且具體的,即指代當(dāng)前對象。一般在編譯期確定下來,或稱為編譯期綁定。全局范圍內(nèi)當(dāng)在全部范圍內(nèi)使用,它將會指向全局對象。輸出瀏覽器中運行的腳本,這個全局對象是。 js基本操作-this理解 寫在前面 在面向?qū)ο蟮恼Z言中,this關(guān)鍵字的含義是明確且具體的,即指代當(dāng)前對象。一般在編譯期確定下來,或稱為編譯期綁定。而在 JavaScr...
閱讀 2258·2021-11-19 09:58
閱讀 1776·2021-11-15 11:36
閱讀 2923·2019-08-30 15:54
閱讀 3458·2019-08-29 15:07
閱讀 2826·2019-08-26 11:47
閱讀 2914·2019-08-26 10:11
閱讀 2562·2019-08-23 18:22
閱讀 2815·2019-08-23 17:58