Javascript 向原型添加一个函数
我创建了一个函数并添加到原型中,但当我尝试从元素调用它时,似乎未定义的错误不是函数Javascript 向原型添加一个函数,javascript,Javascript,我创建了一个函数并添加到原型中,但当我尝试从元素调用它时,似乎未定义的错误不是函数 function relMouseCoords(event){ var totalOffsetX = 0; var totalOffsetY = 0; var canvasX = 0; var canvasY = 0; var currentElement = this; do{ totalOffsetX += currentElement.offsetLeft - currentElement.scr
function relMouseCoords(event){
var totalOffsetX = 0;
var totalOffsetY = 0;
var canvasX = 0;
var canvasY = 0;
var currentElement = this;
do{
totalOffsetX += currentElement.offsetLeft - currentElement.scrollLeft;
totalOffsetY += currentElement.offsetTop - currentElement.scrollTop;
}
while(currentElement = currentElement.offsetParent)
canvasX = event.pageX - totalOffsetX;
canvasY = event.pageY - totalOffsetY;
return {x:canvasX, y:canvasY}
}
HTMLCanvasElement.prototype.relMouseCoords = relMouseCoords;
function onDocumentMouseMove( event ) {
event.preventDefault();
var canvas= document.getElementsByTagName("canvas");
coords = canvas.relMouseCoords(); // **** undefined is not a function **** //
getElementsByTagName
获取节点列表,节点列表不是HTMLCanvasElement
的实例,因此没有添加的属性
尝试获取一个元素
var canvas= document.getElementsByTagName("canvas")[0];
此外,还应将事件
传递给函数
var coords = canvas.relMouseCoords(event);
getElementsByTagName
获取节点列表,节点列表不是HTMLCanvasElement
的实例,因此没有添加的属性
尝试获取一个元素
var canvas= document.getElementsByTagName("canvas")[0];
此外,还应将事件
传递给函数
var coords = canvas.relMouseCoords(event);
是因为您将relMouseCoords声明为一个带有一个参数的函数,但未传递任何参数吗?@Heron,您可以调用函数,而不传递参数。函数中的变量将只是
未定义的
@PatrickEvans不知道这一点。谢谢,因为您将relMouseCoords声明为带有一个参数的函数,但没有传递任何参数?@Heron,您可以调用函数而不传递参数。函数中的变量将只是未定义的
@PatrickEvans不知道这一点。谢谢