您的位置:首页 > Web前端 > JavaScript

让我郁闷半天的一段javaScript代码

2013-03-21 19:39 274 查看
斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处

用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中可以重复定义一个函数,但它们存活的时间不同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: