我为画布中的所有常见鼠标事件制作了一种模板
所以我们有一个类来定义单词,当鼠标悬停在单词上时,必须启动所有事件
然后我在代码的“通用”(但现在用空格名括起来)部分声明了一个测试对象(pal)
函数contains(pal)
使用声明为参数的这个测试对象,但是控制台说“TypeError:无法读取未定义的属性'posX'包含”
因为posX是一个对象“pal”属性,所以函数包含(pal)无法读取这个对象我是gess
问题是......为什么?
请参阅https://jsfiddle.net/evy182bp/
答案 0 :(得分:0)
查看代码,第141行是导致问题的原因
console.log( "pincha dentro = ", contains());
问题是你调用contains方法而不传递pal对象的参数,这意味着它会自动传递未定义的' (看看here)
function contains(pal) {
if((pal.posX <= mouse.x)&&
(pal.posX + pal.largoPalabra >= mouse.x)&&
(pal.posY <= mouse.y)&&
(pal.posY + pal.altoPalabra>= mouse.y))
{return true;}
else { return false;}
// if ((100 <= mouse.x)&&
// (100 + 150 >= mouse.x)&&
// (200 <= mouse.y)&&
// (200 + 40>= mouse.y)) // this works
}
一旦删除该行,就没有错误。 希望这有帮助