javascript的四種函數調用方式

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 中,即第一個相當於函數調用,第二個相當 於方法調用。











發佈了45 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章