为什么要将这些函数赋值给带有“冗余”的对象?函数名

Why are these functions assigned to objects with a "redundant" function name?

本文关键字:函数 冗余 对象 赋值 为什么      更新时间:2023-09-26

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

如果您查看bravo.js的源代码,您将注意到第807行如下内容。

module.declare = function main_module_declare(dependencies, moduleFactory)

将函数命名为main_module_declare有什么好处?

不能这样写吗?

module.declare = function (dependencies, moduleFactory)

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

如果你像我一样,对"严格模式"不感兴趣,那就用arguments.callee吧。

为函数使用内部局部变量的最大优点是模块的代码对函数是否是公共变量无关紧要。例如,如果您想将先前的私有函数转换为公共函数,那么只需添加module.publicName = privateName行就比重命名' privateName '的所有实例更简单。如果你想从公共接口中删除一个函数,反过来也可以这样做。

然而,这并不适用于您链接到的特定情况,因为该函数不会在模块内再次调用。也就是说,评论提到module.declare可能会被覆盖,所以我猜可能有理由在某处保留对原始函数的引用。