gpt4 book ai didi

Javascript:给定函数列表,如何创建具有这些函数作为属性的对象?

转载 作者:行者123 更新时间:2023-11-30 12:56:36 25 4
gpt4 key购买 nike

给定:

var f1 = function(){return "a";};
var f2 = function(){return "b";};
var f3 = function(){return "c";};
transformToObject([f1, f2, f3]);

如何创建函数:

function transformToObject(arrayOfFuncs){...};

返回:

{
f1: function(){return "a";},
f2: function(){return "b";},
f3: function(){return "c";}
}

困难似乎是获取变量的名称来创建对象的属性。

注意:由于我以将匿名函数赋值给变量的形式定义函数,函数的“名称”属性将无济于事,因为它是空的,这意味着:

function a(){};
//a.name === "a"
var b = function(){};
//b.name === ""

最佳答案

var f1 = function(){return "a";};
var f2 = function(){return "b";};
var f3 = function(){return "c";};

var obj = {f1: f1, f2: f2, f3: f3};

alert(obj.f1());

Demo

根据您的编辑,可能是这样的:

var f1 = function(){return "a";};
var f2 = function(){return "b";};
var f3 = function(){return "c";};

function transformToObject(){
return {f1: f1, f2: f2, f3: f3};
}

var myObjectHasFunctions = transformToObject();

alert(myObjectHasFunctions.f1());

Demo2

或者一些非常疯狂的东西:

var f1 = function a(){return "a";};
var f2 = function b(){return "b";};
var f3 = function c(){return "c";};

var arrayOfFuncs = [f1, f2, f3]

function transformToObject(arrayOfFuncs){
var obj = {}
obj.functions = []

arrayOfFuncs.forEach(function(test){
obj.functions.push({name: test.name, method: test})
});

return obj;
}

var myObjectHasFunctions = transformToObject(arrayOfFuncs);

myObjectHasFunctions.functions.forEach(function(func){
alert(func.method());
});

Demo3

但是你真的最好不要像 (2) 那样做各种评论中提到的事情。

关于Javascript:给定函数列表,如何创建具有这些函数作为属性的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877892/

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