是否有一种更优雅的方式来写这样的东西,其中myFunction与函数func一致,但func也在赋值期间执行?
var myFunction = (function(){
var func = function(){
console.log('hello world');
};
func();
return func;
})();
...
myFunction();
答案 0 :(得分:3)
var myFunction = (function func(){
console.log('hello world');
return func;
})();
您可以为匿名功能命名。但是,这个名称只能在函数本身内部访问。
答案 1 :(得分:0)
您的核心陈述是
var <name> = (<functionExpression>)();
我不知道这会更优雅。
答案 2 :(得分:0)
赋值表达式返回指定的值,但您必须单独声明该变量,因此您仍然必须重复该标识符:
var outer;
(outer = function() {
var inner;
return (inner = function() {
print('hello world');
})(), inner;
})();
outer();
如果我从同事那里看到这段代码,我会用卷起的报纸给他打发。