- 主题:这段js代码里面的括号是什么意思呢
(//这个括号
function print_today()
{
haha = 'haha';
document.write(haha);
}
)//和这个括号是用来做什么的?
()//整体效果向个函数调用。
--
FROM 222.29.20.*
。。。。。
为什么用括号括起来,再用个括号就能调用了呢?这点很疑惑。
【 在 shaolin (叶孤城|漫漫当爹路) 的大作中提到: 】
: 括起来呀。。
--
FROM 222.29.20.*
匿名函数?
function () { var a='hello';document.write(a)}()
没有function也能定义匿名函数?迷糊
【 在 lalula (Twin●逆天改命) 的大作中提到: 】
: 匿名函数调用咯
: 很好用的
: 写一些组件的时候,非常好
: ...................
--
FROM 222.29.20.*
嗯,的确是这样的。
【 在 chumsdock (微笑服务) 的大作中提到: 】
: 类似于
: a = function(){//blah}
: (a)()
: ...................
--
FROM 222.29.20.*
汗,看的我连什么是语句什么是表达式都迷糊了。不过总体感觉清晰了,赞。
【 在 modico ().net() 的大作中提到: 】
: 标 题: Re: 这段js代码里面的括号是什么意思呢
: 发信站: 水木社区 (Tue Mar 9 17:20:45 2010), 站内
:
: 1. function(){}();
: 2. (function(){})(); (比1多了一对圆括号)
: 3. function(a){}(1); (比1多了一个参数)
:
: 这3种里,除了1外,2和3的语法都是对的,但是意思不一样。
: 按照函数调用的语法形式,一个表达式(这里是函数表达式)后跟一对括号就算。
: 但为什么没有最前面的括号就没有函数调用的效果?
: 因为这个函数表达式同时也是函数声明,在编译层面上,是以函数声明和语句为
: 单位切分段落的,语句也包括表达式语句。按规范所述,function开头的,哪怕
: 形式符合表达式语句,也不算数,而是算作函数声明为优先。
: 所以,以上3条被编译器断句为:
:
: 1. function(){} (); //一个函数声明;接后面的 (); 部分语法错
: 2. (function(){})(); //一个调用表达式语句
: 3. function(a){} (1); //一个函数声明;接一个基本表达式语句。
:
: 第一个()的目的,就是构造一个基本表达式,消除函数声明的优先性。
:
: 【 在 komac (密钥) 的大作中提到: 】
: : (//这个括号
: : function print_today()
: : {
: : ...................
:
: --
: 软件变慢的速度要快于硬件变快的速度
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 218.241.172.*]
--
FROM 222.29.20.*