Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您可以在JavaScript中将对象方法作为回调传递吗?_Javascript_Image_Object_Methods_Callback - Fatal编程技术网

您可以在JavaScript中将对象方法作为回调传递吗?

您可以在JavaScript中将对象方法作为回调传递吗?,javascript,image,object,methods,callback,Javascript,Image,Object,Methods,Callback,所以我有一个对象,让我们用一个子对象调用它A,我将调用B,它有一个叫做“CallMe”的方法/函数,我希望在加载和对象时调用它,但我似乎无法让它工作。有可能吗 例如: var A = { B: { CallMe: function() { alert('I\'ve been Called!'); } } } var objImage = new Image(); objImage.onLoad = A.B.CallMe; objImage.src = '/i

所以我有一个对象,让我们用一个子对象调用它A,我将调用B,它有一个叫做“CallMe”的方法/函数,我希望在加载和对象时调用它,但我似乎无法让它工作。有可能吗

例如:

var A = {
  B: {
    CallMe: function() {
      alert('I\'ve been Called!');
    }
  }
}

var objImage = new Image();
objImage.onLoad = A.B.CallMe;
objImage.src = '/img/some_image.png';

您应该将它绑定到
.onload
属性而不是
.onload
-这应该可以修复它,愚蠢的打字错误-这是最糟糕的

它工作正常。。。您只需要调用它(objImage.onLoad();):

此处的测试代码:

请注意,CallMe将在objImage而不是A.B的上下文中执行。因此,CallMe中的关键字this将在调用过程中引用objImagecallback@BiAiB没有办法让它引用父方法而不是调用方方法吗?
onload
的要点是不需要显式调用它。它应该响应映像的加载事件。哦,我的坏。然后他想要绑定到一个事件侦听器?是的,图像有一个
onload
,你可以绑定到它,当图像加载完成时触发处理程序。我想这可能是一件愚蠢的事情,就像我把方法名写错了一样,这显然是漫长的一天。干杯
var A = {
  B: {
    CallMe: function() {
      alert('I\'ve been Called!');
    }
  }
}

var Image = function(){

}
Image.prototype.onLoad = null;

$(document).ready(function() {
    var objImage = new Image();
    objImage.onLoad = A.B.CallMe;

    objImage.onLoad();
});