您可以在JavaScript中将对象方法作为回调传递吗?
所以我有一个对象,让我们用一个子对象调用它A,我将调用B,它有一个叫做“CallMe”的方法/函数,我希望在加载和对象时调用它,但我似乎无法让它工作。有可能吗 例如:您可以在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
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();
});