gpt4 book ai didi

javascript - 对象*名称*没有方法*方法名称*

转载 作者:行者123 更新时间:2023-11-28 10:06:10 26 4
gpt4 key购买 nike

我有两个对象:commandtopic

topic 有一个从 command 调用的方法 actions

当调用topic.actions()时,没有错误。

当我使用值为字符串'topic'的对象属性command.taxonomy来调用topic.actions()时,抛出异常:“对象主题没有方法操作”

为什么控制台会报告topic没有方法actions,而它就在那里?

command = {
/*this is set when an html element is clicked by another function:
for this example, it equals the string 'topic'*/
taxonomy : '',

//this is called when the same html element is clicked as above
taxonomy_actions: function(){
this.taxonomy.actions();
}
}

topic = {
actions:function(){
//returns an array of valid commands for topic
this.commands.push('shortcuts');
this.commands.push('action_list');
this.commands['shortcuts'] = new Array();
this.commands['action_list'] = new Array();

for(x in this.aliases){
this.commands.action_list.push(this.aliases[x]);
this.commands.shortcuts.push(x);
}
return this.commands;
}
}

最佳答案

实际上你的问题主要是这样的:

whose value is the string 'topic' to call ...

您想要的是访问包含 topic{} 对象的对象的“topic”属性。

因此你想要:

taxonomy_actions: function(){
containing_object[this.taxonomy].actions();
}

包含对象(如果您没有将主题附加到某个对象)将是浏览器环境中的 window 或 NodeJS 中的 global

关于javascript - 对象*名称*没有方法*方法名称*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349335/

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