JS函数学习
一:函数
1.声明
function functionName(parameters) {
要执行的代码
}
举例:
function myFunction(a, b) {
return a * b;
}
2.自调用函数
函数表达式可以作为“自调用”。
自调用表达式是自动被调用(开始)的,在不进行调用的情况下。
函数表达式会自动执行,假如表达式后面跟着 ()。
您无法对函数声明进行自调用。
您需要在函数周围添加括号,以指示它是一个函数表达式:
实例
(function () {
var x = "Hello!!"; //我会调用我自己
})();
3.函数可用作值
JavaScript 函数可被用作值:
实例
function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3);
4.JavaScript 函数可用在表达式中:
实例
function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3) * 2;
5.函数是对象
JavaScript 中的 typeof 运算符会为函数返回 "function"。
但是最好是把 JavaScript 函数描述为对象。
JavaScript 函数都有属性和方法。
arguments.length 会返回函数被调用时收到的参数数目:
toString() 方法以字符串返回函数:
二:函数参数
functionName(parameter1, parameter2, parameter3) {
要执行的代码
}
函数参数(parameter)指的是在函数定义中列出的名称。
函数参数(argument)指的是传递到函数或由函数接收到的真实值。
如果函数调用的参数太多(超过声明),则可以使用 arguments 对象来达到这些参数。
arguments 对象
JavaScript 函数有一个名为 arguments 对象的内置对象。
arguments 对象包含函数调用时使用的参数数组。
实例
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
三:函数调用
1.以函数形式调用函数
实例
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2);
2.作为方法来调用函数
在 JavaScript 中,您可以把函数定义为对象方法。
下面的例子创建了一个对象(myObject),带有两个属性(firstName 和 lastName),以及一个方法(fullName):
实例
var myObject = {
firstName:"Bill",
lastName: "Gates",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // 将返回 "Bill Gates"
3.通过函数构造器来调用函数
如果函数调用的前面是 new 关键字,那么这是一个构造函数调用。
它看起来像你创建一个新的函数,但由于 JavaScript 函数是对象,你实际上创建一个新对象:
实例
// 这是函数构造器:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// 创建了一个新对象:
var x = new myFunction("Bill", "Gates");
x.firstName;
四:JavaScript call() 方法
1.通过 call(),您能够使用属于另一个对象的方法。
本例调用 person 的 fullName 方法,并用于 person1:
实例
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"Bill",
lastName: "Gates",
}
var person2 = {
firstName:"Steve",
lastName: "Jobs",
}
person.fullName.call(person1); // 将返回 "Bill Gates"
带参数的 call() 方法
2.call() 方法可接受参数:
实例
var person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName + "," + city + "," + country;
}
}
var person1 = {
firstName:"Bill",
lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");
五:JavaScript 函数 Apply
通过 apply() 方法,您能够编写用于不同对象的方法。
apply() 方法与 call() 方法非常相似:
在本例中,person 的 fullName 方法被应用到 person1:
实例
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName: "Bill",
lastName: "Gates",
}
person.fullName.apply(person1); // 将返回 "Bill Gates"
call() 和 apply() 之间的区别
不同之处是:
call() 方法分别接受参数。
apply() 方法接受数组形式的参数。
如果要使用数组而不是参数列表,则 apply() 方法非常方便。