javascript的函数有四种调用方式,每种方式的不同之处是在于初始化的不同,下面就以实例来说明四种函数方式的调用。
一、函数调用形式
这种方式最常见是,是直接声明一个函数后调用,也是最常见的一种方式。
// 声明一个函数,并调用
function func() {
alert("Hello World");
}
func();
// 使用函数的Lambda表达式定义函数,然后调用
var func = function() {
alert("你好,程序员");
};
func();
二、方法调用模式
函数调用模式很简单,是最基本的调用方式。但是同样的是函数,将其赋值给一个对象的成员以后,就不一样了。将函数赋值给对象的成员后,那么这个就不在称为函数,而应该叫做方法。例如:
// 定义一个函数
var func = function() {
alert("我是一个函数么?");
};
// 将其赋值给一个对象
var o = {};
o.fn = func; // 注意这里不要加圆括号
// 调用
o.fn();
三、构造器调用模式
这种模式是通过构造器建立对象后,来完成对函数的调用
// 定义一个构造函数
var Person = function() {
this.name = "程序员";
this.sayHello = function() {
alert("你好,这里是" + this.name);
};
};
// 调用构造器,创建对象
var p = new Person();
// 使用对象
p.sayHello();
四、apply调用模式与call调用模式
// js1.js 文件中
var func1 = function() {
this.name = "程序员";
};
func1.apply(null);
alert(name);
// js2.js 文件
var func2 = function() {
this.name = "程序员";
};
var o = {};
func2.apply(o);
alert(o.name);
注解:第一个文件中的 name 属性已经加载到全局对象 window 中; 而第二个文件中的 name 属性是在传入的对象 o 中,即第一个相当于函数调用,第二个相当 于方法调用。