JS函数object is not a function的bug
今天写一个JS函数的时候,发现怎么也运行不了这个函数,一直报错:object is not a function。
但是如果单独只写js,把页面给分开,是没有问题的,那么出现这个问题一定是页面出现了问题。
假如说,我们的这个函数是test(),点击按钮运行这个函数,下面是代码。
<input type="radio" name="test" onclick="test();"/>
<br />
<form action="">
<input type="radio" name="test" onclick="test();"/>
</form>
<script type="text/javascript">
function test(){
alert("11");
}
</script>
当然这只是代码中的一小部分,通过逐步排查,问题应该就出现在这里。
看着代码发现一个radio对象的name属性和一个function name重名了。
我们输出这个函数看看会出现什么结果。
onclick="alert(test);"
发现弹出“object HTMLInputElement”,浏览器解析函数test变为dom对象了。
解决办法就是修改函数名称,或者修改name属性值。