gpt4 book ai didi

javascript - 如何判断一个函数是作为方法调用还是作为回调调用

转载 作者:行者123 更新时间:2023-12-02 18:29:46 25 4
gpt4 key购买 nike

我有一个有方法的对象。该方法可以作为对象上的方法或回调函数来触发。确定其名称的最佳方法是什么?我提出了一个我不确定是否可靠的解决方案。

function Object() {
this.method = function(elem) {
if (elem.type !== undefined) {
alert("we've got an event");
} else {
alert("it doens's seem to be an event");
}
}
}
var obj = new Object();
$('span').click(obj.method);
obj.method($('div'));

我决定稍微编辑一下我的问题,以指出问题不是关于“this”参数以及如何绑定(bind)函数的上下文。

最佳答案

我不确定为什么代码的调用方式很重要。我敢打赌,如果您能清楚地阐明为什么它很重要,您会发现应该传递一个参数来让函数知道这一点。然后您可以制作一个简单的包装器来适本地执行此操作:

function MyObject() {
this.method = function(randomParam1, randomParam2, calledThroughAlert) {
// calledThroughAlert knows what you need to know.
}
}

function callbackToMyObject() {
obj.method('foo', 'bar', true);
}
var obj = new MyObject();
$('span').click(callbackToMyObject);
obj.method('bar', 'foo'); // defaults the calledThroughAlert param to false

关于javascript - 如何判断一个函数是作为方法调用还是作为回调调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com