什么是函数
函数是完成某个特定功能的一组语句。如没有函数,完成任务可能需要五行、十行、甚至更多的代码。这时我们就可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省重复输入大量代码的麻烦。
如何定义一个函数呢?基本语法如下:
function 函数名()
{
函数代码;
}
说明:
-
function定义函数的关键字。
-
"函数名"你为函数取的名字。
-
"函数代码"替换为完成特定功能的代码。
请看下面实例:
var add2;
function add2(){
var sum = 3 + 2;
alert(sum);
}
函数调用
JavaScript 函数有 4 种调用方式:
- 作为一个函数调用
- 函数作为方法调用
- 使用构造函数调用函数
- 作为函数方法调用函数
this 关键字
每种方式的不同在于 this 的初始化。
一般而言,在Javascript中,this指向函数执行时的当前对象。
(注意 this 是保留关键字,不能修改 this 的值。)
作为一个函数调用
实例
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); // myFunction(10, 2) 返回 20
以上函数不属于任何对象。但是在 JavaScript 中它始终是默认的全局对象。
在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面。
在浏览器中的页面对象是浏览器窗口(window 对象)。以上函数会自动变为 window 对象的函数。
函数作为方法调用
实例
var myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // 返回 "John Doe"
fullName 方法是一个函数。函数属于对象。 myObject 是函数的所有者。
this对象,拥有 JavaScript 代码。实例中 this 的值为 myObject 对象。
使用构造函数调用函数
实例
// 构造函数:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// This creates a new object
var x = new myFunction("John","Doe");
x.firstName; // 返回 "John"
构造函数的调用会创建一个新的对象。新对象会继承构造函数的属性和方法。
注意:
(构造函数中 this 关键字没有任何的值。
this 的值在函数调用实例化对象(new object)时创建。)
作为函数方法调用函数
实例
function myFunction(a, b) {
return a * b;
}
myObject = myFunction.call(myObject, 10, 2); // 返回 20
通过 call() 方法你可以设置 this 的值, 且作为已存在对象的新方法调用。