gpt4 book ai didi

javascript - 访问包含函数

转载 作者:行者123 更新时间:2023-11-30 11:34:40 24 4
gpt4 key购买 nike

因此,我正在开发一个使用函数构造函数生成函数的库。

每个生成的函数都将有一个属性附加到称为 default 的函数,用于存储选项参数的默认值。

像这样:

var generated_function = function( arg1, arg2, options_arg ){ ... }
generated_function.default = {}

将默认值附加为函数的属性而不是像这样将其存储在函数中的原因:

var generated_function = function( arg1, arg2, options_arg ){
default = {}
}

是我想要在运行时根据需要更改默认设置的选项。

例如,您的默认选项是一个由数百甚至数千个属性组成的巨大对象,而您的争论性选项平均只有默认大小的 25%。

我们还假设您调用此函数 100 次或 1000 次,并且每次调用都更改参数选项,但仅更改默认选项最多仅 2 次。

现在我可以将默认选项连同该参数中的参数选项一起传递,但这需要创建大量对象并将其传递给生成的函数。这是内存问题。

我无法承受此脚本的内存问题。请记住,函数是生成的,这意味着我还面临将所有数据以该大小和频率传递给多个函数而不是一个的问题

我需要的是能够访问该附加属性,但我不能这样做:

var generated_function = function( arg1, arg2, options_arg ){ 
...
generated_function.default ... //do something with it
...
}
generated_function.default = {}

因为函数的名称是自动生成的,这意味着很难像我一样通过名称访问该函数,并且该函数可以在另一个生成的函数中生成,这意味着我必须处理范围问题。

所以,基本上我正在寻找的是:

var generated_function = function( arg1, arg2, options_arg ){ 
...
containing_function.default ... //do something with it
...
}
generated_function.default = {}

所以我可以在这个生成的场景中像这样使用它:

( window[ somerandomlygeneratedstring ] = function( arg1, arg2, options_arg ){ 
...
containing_function.default ... //do something with it
...
( someobjectthatcannotbetracked[ somerandomlygeneratedstring ] = function( arg1, arg2, options_arg ){
...
containing_function.default ...
...
} ).default = { ... }

} ).default = { ... }

最佳答案

您可以使用arguments.callee 访问当前函数。这里

var generated_function = function( arg1, arg2, options_arg ){ 
...
arguments.callee.default ... //do something with it
...
}
generated_function.default = {}

关于javascript - 访问包含函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44992175/

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