【发布时间】:2014-11-02 22:01:38
【问题描述】:
我最近遇到了几个定义对象方法的库,如下所示:
var someObject = {
myMethod: function myMethod(args){ /* implementation */ }
};
有人可以向我解释一下双重命名的用途吗?我了解function someName(){}; 和var someName = function(){}; 之间的区别,但这种设置对我来说意义不大。
【问题讨论】:
-
嗯..它是一个对象初始化器(在developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/… 中描述)。
-
也许我解释的不够清楚:我想知道为什么 myMethod 既是对象定义中的键,又是通过函数定义命名的函数。这有优势吗?
-
例如,您不必键入 someObject.myMethod 即可在 myMethod 中调用它。
-
那么在方法自己的闭包中,您可以在递归执行它时将其用作快捷方式吗?对于相当多的冗长来说,这似乎是最小的回报。另外:这个函数名称是如何被带到闭包中的?
标签: javascript methods function-expression