国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

原型方法的不同寫法居然會影響調試的解決方法

2019-11-21 02:13:38
字體:
來源:轉載
供稿:網友
上次我寫過一篇文章,討論"JavaScript類定義原型方法的兩種實現的區別"。研究后發現除了方法的初始化方式不同外,沒有發現別的原則上的卻別,也就是說用哪種方式都一樣。可是后來發現在VS.NET中給原型方法設置斷點來調試時,兩種定義方式卻出現了很大的差別。

    先看如下代碼示例:  1 ToolBar.prototype.Dispose = function()
 2 {
 3     var elmt = this.GetElement(); ***
 4     elmt.onselectstart = '';
 5     elmt.oncontentmenu = '';
 6     elmt.clearAttributes();
 7     // todo 
 8 }
    我的代碼運行在這里出了錯,調試器VS.NET把代碼執行光標停在了第4行,而且不讓我拖拽上去。我想如果能拖上去就可以step into的跟蹤以下this.GetElement()方法嘛。既然不能拖,我就在第3行設一個breakpoint唄,設好后attach調試器,怎么不能停到代碼行3的地方呢?在調試器一看,斷點被VS.NET自動設到第一行代碼上去了,并且整個的ToolBar.prototype.Dispose方法都是被highlight了@_@。于是我想手動把breakpoint再設置到第3行代馬上去,卻怎么也不能成功。一在第3行上設置breakpoint就會自動跳到第1行,但可以在第3行以后的代碼行上設,比如4,5,6向后都可以。這里有個ugly的解決方法,就是在第3行代碼前一句無用的語句(簡單的var定義變量是不行的,至少要var a=1;),把現在的第3行變成第4行就可以了。這種bug真是讓人莫名其妙哈。

    今天發現可以這么來解決這個問題,把ToolBar.prototype.Dispose = function()改成:function ToolBar.prototype.Dispose()就行了!真是怪!~ 1function ToolBar.prototype.Dispose()
2{
3     var elmt = this.GetElement(); ***
4     elmt.onselectstart = '';
5     elmt.oncontentmenu = '';
6     elmt.clearAttributes();
7     // todo 
8}
    上面這個方法,就可以隨意的在第3行上設置breakpoint。這個問題同時存在于VS.NET 2003和VS.NET 2005 beta1中。誰有空拿VS.NET 2005 beta2看看這個問題還有沒有。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长兴县| 清涧县| 隆尧县| 青阳县| 崇礼县| 洪江市| 永吉县| 黄石市| 壤塘县| 钦州市| 汝州市| 宝清县| 平顺县| 盐源县| 壶关县| 扎兰屯市| 兴和县| 习水县| 迁西县| 南雄市| 大兴区| 长泰县| 五华县| 迭部县| 邳州市| 承德县| 自贡市| 竹北市| 高碑店市| 合肥市| 额尔古纳市| 泸州市| 阿鲁科尔沁旗| 永修县| 洛扎县| 漳平市| 义乌市| 余姚市| 永兴县| 罗江县| 开江县|