JavaScript函数定义 JavaScript对象原型 JavaScript函数参数 JavaScript 函数使用 function 关键字来 定义 你可以使用一个函数 声明 或者一个函数 表达式. 函数声明 在本教程中,您了解了以下语法声明函数: function functionName(parameters) { code to be executed } 声明一个函数不会立即执行。它们被“保存以供稍后使用”,稍后将被执行,当它们被调用(call)。 function myFunction(a, b) { return a * b; } 让我试试 分号是用来分隔执行JavaScript语句。因为一个函数声明不是一个可执行语句,它不用分号结尾。 函数表达式 一个JavaScript函数也可以使用 表达式 定义。 函数表达式可以存储在变量中: var x = function (a, b) {return a * b}; 让我试试 函数表达式存储在变量中后,变量可以作为函数使用: var x = function (a, b) {return a * b}; var z = x(4, 3); 让我试试 上面的函数实际上是一个匿名函数(一个没有名字的函数) 存储在变量中的函数不需要函数名。它们总是使用变量名调用(call). 上面的函数用分号结束,因为它是一个可执行语句的一部分。 Function() 构造函数 正如你在前面的例子中看到的,JavaScript函数使用function关键字定义。 函数还可以用一个内置的叫做Function()的构造函数来定义。 var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3); 让我试试 您实际上不必使用函数构造函数。上面的例子也可以写成这样: var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3); 让我试试 大多数时候,你可以避免使用 new 关键词在JavaScript Function 提升 在本教程中,你了解了 "hoisting". Hoisting是JavaScript的默认行为是移动声明当前范围的顶部。 Hoisting 适用于变量声明和函数声明。 正因为如此,JavaScript函数可以调用之前就被声明: myFunction(5); function myFunction(y) { return y * y; } 使用表达式定义函数不会被提升 自调用函数 函数表达式可以进行“自调用”。 自动调用一个自调用表达式(自动启动),而不必调用. 函数表达式将自动执行,如果表达式随后 (). 你不能自调用一个函数声明. 您必须在函数的周围添加圆括号,以指示它是函数表达式: (function () { var x = "Hello!!"; // I will invoke myself })(); 让我试试 上面的函数实际上是一个匿名的自调用函数(没有名字的函数)。 函数可以用作值 JavaScript 函数可以用作值: function myFunction(a, b) { return a * b; } var x = myFunction(4, 3); 让我试试 JavaScript函数可以用在表达式: function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2; 让我试试 函数是对象 typeof 操作符用在函数上返回"function". 但是,JavaScript函数可以被描述为对象。 JavaScript函数都有属性和方法. arguments.length 属性返回函数调用时接收的参数个数: function myFunction(a, b) { return arguments.length; } 让我试试 toString() 方法将函数作为字符串返回: function myFunction(a, b) { return a * b; } var txt = myFunction.toString(); 让我试试 定义为对象属性的函数称为对象的方法。为创建新对象而设计的函数称为对象构造函数. JavaScript对象原型 JavaScript函数参数