- 主题:js函数体外面包小括号是什么意思?
你把代码贴全。。要不js太灵活,括号也各种用途。
【 在 RuralHunter (渔父) 的大作中提到: 】
: 你说的是里面的括号吧,我问的是最外层的把整个函数(包括定义和调用)包起来的那个括号。
--
FROM 36.110.16.178
立即执行函数的形式之一,
最外的括号用编译的术语来说就是一个enviroment或者说scope。
比如这种立即执行函数:
(function(){....})()
就没有上面那种好。
【 在 RuralHunter 的大作中提到: 】
: 在js文件里看到类似如下代码:
: (function(){....}())
: 最外层包的小括号是干啥用?
: ...................
--
FROM 58.48.131.*
scope stack是function自己的,只不过这个function在这
execute生成一个当前环境相关的scope。
【 在 atomic (atomic) 的大作中提到: 】
: 立即执行函数的形式之一,
: 最外的括号用编译的术语来说就是一个enviroment或者说scope。
: 比如这种立即执行函数:
: ...................
--
FROM 36.110.16.178
var x = function() {
very very long body
}();
vs
var x = (function() {
very very long body
}());
btw there are jshint/eslint rules for this.
【 在 RuralHunter (渔父) 的大作中提到: 】
: 在js文件里看到类似如下代码:
: (function(){....}())
: 最外层包的小括号是干啥用?
: ...................
--
FROM 49.221.19.*
这个应该是靠谱答案,也许是我的表达有问题,那么多人看不懂问题。
【 在 atomic (atomic) 的大作中提到: 】
: 立即执行函数的形式之一,
: 最外的括号用编译的术语来说就是一个enviroment或者说scope。
: 比如这种立即执行函数:
: ...................
--
FROM 116.226.190.*
其实是把这个 statement 变成 expression
【 在 RuralHunter (渔父) 的大作中提到: 】
: 在js文件里看到类似如下代码:
: (function(){....}())
: 最外层包的小括号是干啥用?
: ...................
--
FROM 221.217.172.100
看了这么多,只有这个说到点子了。
其实看下语法就知道:
1) function开头的是 statement,用来声明一个函数变量并赋值。
2)function不在开头的,是一个表达式。
因此,为了在开头使用function表达式,有不同做法:
1) (function...
2) !function...
3) +function...
其中1)最不改变语义。2)可以少打一个字符(比1少打一个右括号)
【 在 nos (nos) 的大作中提到: 】
: 其实是把这个 statement 变成 expression
--
修改:a0123456789q FROM 218.197.87.*
FROM 218.197.87.*
匿名函数自调用,就是这个函数定义之后立马调用他,一班在框架中用到,你去看jquery源码都是用这个格式,为了减少函数变量污染,一般来说都会在函数体中抛出一个变量供全局调用
--
FROM 58.38.22.*
自运行啊。
虽然我这样写过几次,不过不太喜欢。
【 在 RuralHunter (渔父) 的大作中提到: 】
: 在js文件里看到类似如下代码:
: (function(){....}())
: 最外层包的小括号是干啥用?
--
FROM 115.190.218.*
function末尾跟了个括号,意思是定义完这个function就立即让执行,省得费脑袋给这个function再赋个名称了。
--
FROM 183.128.188.*