Javascript 如何为对象设置默认函数?

Javascript 如何为对象设置默认函数?,javascript,function,object,Javascript,Function,Object,因此,我开始使用对象来帮助组织我的函数。因此,我可以在一个具有相同前缀的对象中使用子函数,而不必使用超长函数名 在我的示例中,我使用“get”作为前缀,因此可以通过执行get.function()调用子函数和get.otherfunction()。但是,我还希望能够为get对象设置一个“default”函数,这样我就可以调用get()本身,它运行一个函数(但如果我调用其中一个子函数,我不希望该函数运行) 以下是迄今为止我掌握的代码: var get = { default: functi

因此,我开始使用对象来帮助组织我的函数。因此,我可以在一个具有相同前缀的对象中使用子函数,而不必使用超长函数名

在我的示例中,我使用“get”作为前缀,因此可以通过执行
get.function()调用子函数
get.otherfunction()。但是,我还希望能够为
get
对象设置一个“default”函数,这样我就可以调用
get()本身,它运行一个函数(但如果我调用其中一个子函数,我不希望该函数运行)

以下是迄今为止我掌握的代码:

var get = {
    default: function() {
        alert('default function');
    },
    secondary: function() {
        alert('secondary function');
    }
}

要生成普通函数,然后添加其他函数作为属性:

var get = function() { ... };

get.secondary = function() { ... };
如果你想,你也可以写

get.default = get;


要生成普通函数,然后添加其他函数作为属性:

var get = function() { ... };

get.secondary = function() { ... };
如果你想,你也可以写

get.default = get;


在EMCAScript术语中,您需要一个实现
[[Call]]
内部属性的对象<代码>函数
是唯一可调用的本机对象类型,因此您需要将对象设置为函数。您没有在任何地方使用
数组
。{}是一个对象文字。在EMCAScript术语中,您需要一个实现
[[Call]]]
内部属性的对象<代码>函数
是唯一可调用的本机对象类型,因此您需要将对象设置为函数。您没有在任何地方使用
数组
。{}是一个对象文字。太棒了,我没想到会这样尝试:p尽管,这种方法的一个缺点是每次定义子函数时都必须重新键入函数前缀,我试图尽可能避免这种情况。@charlesjohnthompsonii您可以轻松创建IIFE并循环对象,设置最终函数的属性:@threeFourOneSixOneThree我的意思是,我在为每个函数定义重新键入get时没有什么大问题,但是我更喜欢尽可能减少可能导致错误的事情。比如,如果我有一个更长的前缀,如果每次我声明一个新的函数定义时都要重复这个前缀,那么我犯错误的几率会更大;我还觉得在声明中检测拼写错误比在调用函数时检测拼写错误要困难得多。@charlesjohnthompsonii:JSHint将捕获您所做的任何拼写错误。您可以使用
$.extend()
或等效工具来避免重复名称。太棒了,我不想这样尝试:Pthough,此方法的一个缺点是每次定义子函数时都必须重新键入函数前缀,如果可能的话,我试图避免这种情况。@charlesjohnthompsonii您可以轻松地创建一个生命并在对象中循环,设置最终函数的属性:@three-fouronesixonethree我的意思是,我对每个函数定义重新键入get没有太大的问题,然而,我更喜欢尽可能减少可能导致错误的事情。比如,如果我有一个更长的前缀,如果每次我声明一个新的函数定义时都要重复这个前缀,那么我犯错误的几率会更大;我还觉得在声明中检测拼写错误比在调用函数时检测拼写错误要困难得多。@charlesjohnthompsonii:JSHint将捕获您所做的任何拼写错误。您可以使用
$.extend()
或等效名称来避免重复该名称。