gpt4 book ai didi

javascript - 以编程方式从对象添加方法

转载 作者:行者123 更新时间:2023-12-03 04:52:20 26 4
gpt4 key购买 nike

假设我有一个使用 require('require-all') 创建的对象

tasks = {
getProfile: [constructor function]
initAll: [constructor function]
login: [constructor function]
};

如何在不使用 eval 的情况下以编程方式向 API 添加适当的方法?

API.prototype.getProfile = function(){
this.runTask(new tasks.getProfile());
};

API.prototype.initAll = function(){
this.runTask(new tasks.initAll());
};

API.prototype.login = function(){
this.runTask(new tasks.login());
}

任务需要能够递归运行,再次调用runTask(所以我真的需要一些在编程上等效的东西)

最佳答案

如果您只是询问如何在给定 tasks 对象时以编程方式构建 API.prototype,您可以执行以下操作:

let tasks = {
getProfile: [constructor function]
initAll: [constructor function]
login: [constructor function]
};

// populate API.prototype based on items in tasks
Object.keys(tasks).forEach(prop => {
API.prototype[prop] = function() {
this.runTasks(new (tasks[prop])());
}
});

关于javascript - 以编程方式从对象添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604198/

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