让我郁闷半天的一段javaScript代码
2013-03-21 19:39
274 查看
斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处!
用js写东西的时候遇到了一个神奇的现象:直接调用某函数A(方便讨论)可以正常运行,在另外的函数B里面调用该函数A一直出错。我声明一点:该函数B与A是无关的。先贴上代码,如下:
代码一:
代码二:
检查再检查,调试再调试,结果还是没有找出问题原因。
最后,在我几乎失望透顶的时候,我随意地点开了DOM树的结构。结果眼前一亮——我发现了如下代码:
谨记:在javascript中可以重复定义一个函数,但它们存活的时间不同。
用js写东西的时候遇到了一个神奇的现象:直接调用某函数A(方便讨论)可以正常运行,在另外的函数B里面调用该函数A一直出错。我声明一点:该函数B与A是无关的。先贴上代码,如下:
代码一:
<!DOCTYPE html> <html> <body> <script type="text/javascript"> function Circle(r) { this.r = r; } Circle.prototype.area = function() { return 3.14 * this.r * this.r; } var a = new Circle(1.0); //此处运行正常 alert("a:" + a.area()); function init() { // Some Code ... } var Circle = { PI: 3.14159 }; init(); </script> </body> </html>
代码二:
<!DOCTYPE html> <html> <body> <script type="text/javascript"> function Circle(r) { this.r = r; } Circle.prototype.area = function() { return 3.14 * this.r * this.r; } var a = new Circle(1.0); //此处运行正常 alert("a:" + a.area()); function init() { // Some Code ... var b = new Circle(1.0); //此处运行错误 alert("b:" + b.area()); } var Circle = { PI: 3.14159 }; init(); </script> </body> </html>
检查再检查,调试再调试,结果还是没有找出问题原因。
最后,在我几乎失望透顶的时候,我随意地点开了DOM树的结构。结果眼前一亮——我发现了如下代码:
var Circle = { PI: 3.14159 };原来是自己之前写的代码忘记删除了。所以,当代码一运行的时候结果正常,而代码二运行的时候会出现错误。
谨记:在javascript中可以重复定义一个函数,但它们存活的时间不同。
相关文章推荐
- JavaScript continue【每日一段代码60】
- 一段实现选择框javascript代码的重构
- Javascript---有趣的一段代码--this指向问题
- JavaScript clearTimeout 【每日一段代码75】
- JavaScript indexOf() 方法 【每日一段代码81】
- JavaScript getTime()方法 【每日一段代码84】
- JavaScript sort() 方法数组排序文字【每日一段代码92】
- javascript 一段左右两边随屏滚动的代码
- 一段让我吃惊的javascript代码。(就两句) 发送键盘命令生成get set脚本。
- JavaScript for in 声明【每日一段代码61】
- 一段javascript实现缩略图的好代码
- 浏览器兼容性问题,为什么同一段JavaScript代码,不同浏览器上为什么会产生不同效果,甚至bug?浏览器不就是严格按照JavaScript语法进行的吗?java代码为什么从来没听过有什么兼容问题?
- 一段经典的javascript代码分析
- JavaScript cookie 【每日一段代码69】
- 一段javascript实现缩略图的好代码
- 【转载】一段有趣的Javascript代码及分析
- JavaScript setFullYear()方法 【每日一段代码85】
- 一段多浏览器的"复制到剪贴板"javascript代码
- [Ajax]便于在html页面中引用javascript显示后台数据的一段ajax代码
- 一段超强的javascript代码解密方法