gpt4 book ai didi

javascript - 如果没有定义对象,则对象默认为函数

转载 作者:行者123 更新时间:2023-12-02 20:15:46 25 4
gpt4 key购买 nike

假设我有以下对象:

Fxy.commands={
group:{
add:function(msg){

所以,当然,Fxy.commands.group.add('something') 会执行该函数执行的任何操作。但是,如果我调用 Fxy.commands.group('something') 会怎样?好吧,老实说我不知道​​如何让它处理这个问题。这就是我要问的:如果一个对象中没有调用任何对象,我如何使一个对象默认为一个函数?显然上面的代码不起作用,因为它没有默认函数,因为我什至不知道它会放在哪里。如果可以的话,会怎样做呢?如果没有,请简单说明,但也请提出解决方法。

最佳答案

函数也是对象,因此您可以为其分配属性:

Fxy.commands = {
group: function(msg) {}
};

Fxy.commands.group.add = function(msg){};

更新:(根据要求)

如果您不想一遍又一遍地编写 Fxy.commands.group (这实际上并没有那么糟糕,因为它清楚地表明了函数分配到的位置),您可以创建复制属性的函数(如 jQuery.extend )。这是一个非常基本的版本:

function extend(A, B) {
for(var prop in B) {
if(B.hasOwnProperty(prop)) {
A[prop] = B[prop];
}
}
}

然后你可以这样做:

var funcs = {
add: function(){},
remove: function(){},
...
};

extend(Fxy.commands.group, funcs);

关于javascript - 如果没有定义对象,则对象默认为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335499/

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