Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么将这些功能分配给带有“的对象?”;“多余的”;函数名?_Javascript - Fatal编程技术网

Javascript 为什么将这些功能分配给带有“的对象?”;“多余的”;函数名?

Javascript 为什么将这些功能分配给带有“的对象?”;“多余的”;函数名?,javascript,Javascript,如果你认为你有更好的标题,请随意改写 如果您仔细查看源代码,您会在第807行注意到以下内容 module.declare = function main_module_declare(dependencies, moduleFactory) 命名函数main\u module\u declare有什么好处 难道不能这样写吗? module.declare = function (dependencies, moduleFactory) 如果需要在严格模式下引用调用函数,它可能会很有用 如果你

如果你认为你有更好的标题,请随意改写

如果您仔细查看源代码,您会在第807行注意到以下内容

module.declare = function main_module_declare(dependencies, moduleFactory)
命名函数
main\u module\u declare
有什么好处

难道不能这样写吗?

module.declare = function (dependencies, moduleFactory)

如果需要在严格模式下引用调用函数,它可能会很有用


如果你和我一样,对“stict模式”不感兴趣,只需使用
参数。被调用方

如果你需要在严格模式下引用调用函数,它会很有用


如果你和我一样,不喜欢“stict模式”,只需使用
参数。被调用方

为函数使用内部局部变量的最大优点是,模块的代码与函数是否为公共无关。例如,如果要将以前的私有函数转换为公共函数,则只需添加
module.publicName=privateName
行比重命名“privateName”的所有部分更简单。如果要从公共接口中删除函数,也可以采用另一种方法


但是,这不适用于链接到的特定情况,因为该函数不会在模块内再次调用。也就是说,注释中提到,
module.declare
可能会被覆盖,因此我想可能有理由在某个地方保留对原始函数的引用。

为函数使用内部局部变量的最大优点是,模块的代码对函数是否为公共函数漠不关心。例如,如果要将以前的私有函数转换为公共函数,则只需添加
module.publicName=privateName
行比重命名“privateName”的所有部分更简单。如果要从公共接口中删除函数,也可以采用另一种方法



但是,这不适用于链接到的特定情况,因为该函数不会在模块内再次调用。也就是说,评论中提到,
module.declare
可能会被覆盖,因此我想可能有理由在某个地方保留对原始函数的引用。

+1您还可以补充一点,它简化了调试,因为您将在堆栈跟踪中获得函数名。作为记录,这些被称为命名函数表达式。关于它的所有特性的完整概述,我建议你阅读。我3分钟前才问过,我已经得到了我的答案和2条有用的评论。快乐时光。周末愉快!您是否计划在ECMAScript 6中使用新的模块系统?如果是这样的话,我的理解是它将是严格模式。您还可以添加+1,它简化了调试,因为您将在堆栈跟踪中获得函数名。作为记录,这些被称为命名函数表达式。关于它的所有特性的完整概述,我建议你阅读。我3分钟前才问过,我已经得到了我的答案和2条有用的评论。快乐时光。周末愉快!您是否计划在ECMAScript 6中使用新的模块系统?如果是这样,我的理解是它将是严格模式。
保留对原始函数的引用
。在哪里<代码>主模块声明?!当然,
main\u module\u declare
名称是module local。它可能只是使用函数的代码的某个早期版本的保留,也可能是作者作为习惯所做的事情。也就是说,我试图回答一般情况。这正是我的观点。这不是本地模块。它在同一型号中不可用。@JosephSilber:看来你是对的。我猜我最近一定花了太多时间使用Lua:/但为了确定,你能在IE中运行小提琴吗?我认为在这种情况下,函数表达式的行为就像函数语句一样,只要作用域消失了。我已经在@missingno的回答中链接到了这一点,但你还是要继续:通读一遍。相信我,这是值得的。
保留对原始函数的引用
。在哪里<代码>主模块声明?!当然,
main\u module\u declare
名称是module local。它可能只是使用函数的代码的某个早期版本的保留,也可能是作者作为习惯所做的事情。也就是说,我试图回答一般情况。这正是我的观点。这不是本地模块。它在同一型号中不可用。@JosephSilber:看来你是对的。我猜我最近一定花了太多时间使用Lua:/但为了确定,你能在IE中运行小提琴吗?我认为在这种情况下,函数表达式的行为就像函数语句一样,只要作用域消失了。我已经在@missingno的回答中链接到了这一点,但你还是要继续:通读一遍。相信我,这是值得的。