教你如何使用firebug調(diào)試功能了解javascript閉包和this
對(duì)于跟我一樣,自學(xué)javascript且沒(méi)有其他語(yǔ)言學(xué)習(xí)經(jīng)驗(yàn)的人來(lái)說(shuō),一開始的時(shí)候,javascript的調(diào)試也是一個(gè)比較大的難點(diǎn),很多基礎(chǔ)的東西都需要自己去摸索,這個(gè)過(guò)程是非常苦悶的。
想著趁機(jī)會(huì)將上面那篇閉包博文的配圖用firebug再來(lái)演示一遍,也算是一點(diǎn)調(diào)試經(jīng)驗(yàn)分享。
示例代碼如下:
function fn(){
var max = 10;
return function bar(x){
if (x > max) {
console.log(x);
}
}
}
var fl = fn(),
max = 100;
fl(15);
選擇firebug——腳本

右側(cè)監(jiān)控欄可以window對(duì)象以及變量max、fl、fn。
同時(shí)下面也可以看到window的屬性,以location為例,可以直接在“控制臺(tái)”運(yùn)行window.location輸出,進(jìn)一步可以window.location.href輸出location的href屬性值。當(dāng)然,一般在引用window對(duì)象的屬性和方法時(shí),不需要用“window.xxx”這種形式,而直接使用“xxx”。
言歸正傳,
回到“腳本”欄,通過(guò)打“斷點(diǎn)”的方式調(diào)試javascript和查看變量值。
有幾個(gè)概念可以先了解下:斷點(diǎn)、單步進(jìn)入、單步跳過(guò)、單步退出。這里就不詳敘了。
本次主要是采用設(shè)置斷點(diǎn)、單步進(jìn)入的方式。
可以在左側(cè)行標(biāo)處單擊設(shè)置斷點(diǎn),斷點(diǎn)右鍵可以正則判斷。
可以設(shè)置多個(gè)斷點(diǎn),“斷點(diǎn)”欄內(nèi)可以刪除已設(shè)置的斷點(diǎn)。
這里就直接在script標(biāo)簽的開始處打斷點(diǎn)并刷新頁(yè)面。
此時(shí)
1、右邊監(jiān)控區(qū)域原window對(duì)象處變成this,并指向window。在“控制臺(tái)”輸出this.location會(huì)得到location一樣的結(jié)果。
2、全局變量max、fl初始化為undefined
3、fn()是函數(shù)聲明,因?yàn)榻馕銎鲿?huì)率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可用(可以訪問(wèn))

點(diǎn)擊右上角的“單步進(jìn)入”按鈕
逐次執(zhí)行代碼并在監(jiān)控區(qū)域查看this、各個(gè)變量的值變化以及堆棧的情況??梢院屯扑]的那篇博客相互參照來(lái)看。
然后再來(lái)一個(gè)this的例子
代碼如下:
var name = 'The Window';
var obj = {
name: 'The local',
getNameFunc: function () {
console.log(this.name);
return function () {
console.log(this.name);
};
}
};
var c = obj.getNameFunc();
c();
依然“單步進(jìn)入”,可以看到在執(zhí)行c()這行代碼的時(shí)候,進(jìn)入到getNameFunc里面,this從指向window對(duì)象變?yōu)閛bj,控制臺(tái)輸出‘The local'。
逐步執(zhí)行可以非常清晰的看到整個(gè)代碼的運(yùn)行邏輯。
以上就是本文關(guān)于使用Firebug的調(diào)試功能了解javascript閉包和this的方法總結(jié)了,希望大家能夠喜歡
- FireBug 調(diào)試JS入門教程 如何調(diào)試JS
- 使用firebug進(jìn)行調(diào)試javascript的示例
- javascript 在firebug調(diào)試時(shí)用console.log的方法
- 使用Firebug對(duì)js進(jìn)行斷點(diǎn)調(diào)試的圖文方法
- 使用JavaScript檢測(cè)Firefox瀏覽器是否啟用了Firebug的代碼
- Firebug 字幕文件JSON地址獲取代碼
- Javascript 調(diào)試?yán)?Firebug使用詳解六
- js之WEB開發(fā)調(diào)試?yán)?Firebug 下載
- javascript判斷firebug是否開啟的方法
相關(guān)文章
判斷是否安裝flash player及當(dāng)前版本的JS代碼
本文為大家講述下如何使用jsJS判斷是否安裝flash player及版本,下面的處理代碼或許對(duì)大家有所幫助,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
原生JavaScript實(shí)現(xiàn)Tooltip浮動(dòng)提示框特效
這篇文章主要為大家詳細(xì)介紹了原生JavaScript設(shè)計(jì)和實(shí)現(xiàn)Tooltip浮動(dòng)提示框特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
原生Javascript和jQuery做輪播圖簡(jiǎn)單例子
這篇文章主要為大家詳細(xì)介紹了原生Javascript和jQuery做輪播圖簡(jiǎn)單例子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
小程序?qū)崿F(xiàn)頁(yè)面頂部選項(xiàng)卡效果
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)頁(yè)面頂部選項(xiàng)卡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
javascript中導(dǎo)出與導(dǎo)入實(shí)現(xiàn)模塊化管理教程
這篇文章主要給大家介紹了關(guān)于javascript中導(dǎo)出與導(dǎo)入實(shí)現(xiàn)模塊化管理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
JavaScript 權(quán)威指南(第四版) 讀書筆記
JavaScript 權(quán)威指南(第四版) 讀書筆記,大家可以看看。2009-08-08
解決微信授權(quán)成功后點(diǎn)擊按返回鍵出現(xiàn)空白頁(yè)和報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決微信授權(quán)成功后點(diǎn)擊按返回鍵出現(xiàn)空白頁(yè)和報(bào)錯(cuò)的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

