首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JavaScript中函数式的确切含义

JavaScript中函数式的确切含义
EN

Stack Overflow用户
提问于 2012-09-07 08:58:40
回答 6查看 12.8K关注 0票数 14

在JavaScript中,既有对象字面量又有函数字面量。

对象文字:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myObject = {myprop:"myValue"}

函数字面量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myFunction = function() {
   alert("hello world");
}

字面这个词的意义是什么?我们能说Java有方法文字吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void myMethod() {
    System.out.println("are my literal");
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-07 09:03:56

函数文字只是一个定义未命名函数的表达式。

函数文本的语法与function语句非常相似,不同之处在于它用作表达式而不是语句,并且不需要函数名。

所以当你给出方法名的时候,它就不能是方法文字了。

票数 4
EN

Stack Overflow用户

发布于 2012-09-07 09:11:21

最大的区别在于如何/何时解析和使用它。以你的例子为例,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myFunction = function() {
   alert("hello world");
}

您只能在代码到达那里之后运行myFunction(),因为您使用匿名函数声明了一个变量。

如果你用另一种方式,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function myFunction(){
   alert("hello world");
}

这个函数在编译时被声明为,并且可以在作用域中的任何时候使用。

请参考this question also

票数 9
EN

Stack Overflow用户

发布于 2016-10-02 20:19:53

附加组件:

JavaScript中的函数文字是函数表达式的同义词。

与函数表达式类似,函数文字可以有一个可选的标识符(名称)。

因此,如果我们说函数表达式/函数文字,它包括没有标识符的函数表达式/函数文字(也称为匿名函数),但也包括有标识符的函数表达式/函数文字。即使在许多书中,函数表达式/函数文字被用作函数表达式/函数文字的同义词,但没有标识符(匿名函数)。

函数文字

Function对象是使用函数文字创建的:

//创建一个名为add的变量,并在其中存储一个函数//,该函数将两个数字相加。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> var add = function (a, b) {
>     return a + b; }; 

函数文本包含四个部分。

第一部分是保留字函数。

可选的第二部分是函数的名称。该函数可以使用其名称递归地调用自身。调试器和开发工具也可以使用该名称来标识函数。如果没有为函数指定名称,如上一个示例所示,则称其为匿名函数。

第三部分是函数的参数集,用括号括起来。括号内是一组零个或多个参数名称,用逗号分隔。这些名称将被定义为函数中的变量。与普通变量不同,它们不会被初始化为未定义的变量,而是在调用函数时被初始化为所提供的参数。

第四部分是一组用大括号括起来的语句。这些语句是函数的主体。它们是在调用函数时执行的。

函数文字可以出现在表达式出现的任何地方...

来源:JavaScript: The Good Parts - Douglas Crockford

这意味着:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myFunction = function () {
   alert("hello world");
};

是函数表达式/函数文字,但也是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myFunction = function myFunction() {
   alert("hello world");
};

是函数表达式/函数文字。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12314905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文