JS报错-TypeError: xxx is not a function

在今天的工作中,有个勾选框的onchage事件绑定的函数明明有实现。但是触发时,一直报错TypeError: xxx is not a function。一直以为是错误Uncaught ReferenceError: aa is not defined,但是错误提示有不一样。仔细对比2个错误,is not defined是说这个类型没有定义。is not a function是说这个类型不是function类型的。百度后发现,原来有的浏览器在js代码中可以直接通过元素id找到改元素,然后由Dom中的元素去重写所定义的函数,就会导致该错误is not a function。
如下,在搜狗浏览器中,就能通过元素id直接找到该元素。
这里写图片描述
解决办法:
修改元素的ID值,或者修改函数的名称。

当然不是所有的这个类型的错误都是这个原因,还是要具体错误具体分析的。

你可能感兴趣的:(基础知识)