gpt4 book ai didi

javascript - 检测是否在对象上调用了方法(javascript)

转载 作者:行者123 更新时间:2023-11-28 01:07:05 25 4
gpt4 key购买 nike

这是一个一般性编程问题,并非特定于此代码示例。

如何检测函数内是否调用了特定方法?

想象一下,您希望能够判断是否调用了特定方法,以便您可以根据该方法更改返回的内容。

var turtle = function() {
var vars = {
name: "Shelly",
age: 103
};

this.actions = function() {
var methods = {
crawl: function() {
//etc...
},
mutate: function() {
//etc...
},
eat: function() {
//etc...
}
};

if (methodWasCalled) { // <- The part I don't know how to do
return methods;
} else {
return this;
}

};
if (methodWasCalled) { // <- The part I don't know how to do
return vars;
} else {
return this;
}
};

根据上面的示例,有人可以使用:turtle() 并访问“vars”对象,或者他们可以使用:turtle().mutate() code> 并且海龟对象将执行该函数内的 block 。

最佳答案

让调用者访问 arguments object.

alert("caller is " + arguments.callee.caller.toString());

Callee 指的是正在执行的函数,在您的情况下是 mutate。它有一个引用调用者的属性。

您要做的最好的事情就是开发一个调试工具包(我个人更喜欢 Chrome/IE)并探索该对象以查看您想要查看的信息的完整详细信息。

关于javascript - 检测是否在对象上调用了方法(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941172/

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