函式的四種呼叫模式

2022-08-23 12:51:08 字數 2956 閱讀 1551

函式的四種呼叫模式

1、函式模式

特徵就是乙個簡單的函式呼叫,函式名前面沒有任何的引導內容

this含義

this在函式模式中表示全域性物件,在瀏覽器中是windjow物件

2、方法模式

特徵方法一定是依附與乙個物件,將函式賦值給物件的乙個屬性,那麼就成為了方法

this含義

this在方法模式呼叫中表示所依附的這個物件

3、構造器呼叫模式

與方法模式的this的區別

由於建構函式知識給this新增成員,沒有做其他事情,而方法也可以完成這個操作,就this而言,建構函式與方法沒有本質區別

特徵使用new關鍵字,來引導建構函式

this的區別

建構函式中的this與方法中一樣,表示物件,當是建構函式中的物件是剛剛建立出來的物件

return關鍵字

關於建構函式中 return 關鍵字的補充說明

建構函式中不需要return,就會預設的 return this;

如果手動的新增return 後面不寫值 , 就相當於return this;

如果手動的新增return基本型別,無效,還是保留原來的返回this 即 return this;

如果手動新增 return null 或 return undefined ; 無效

如果手動新增 return 物件型別,那麼原來建立的this 就會被丟掉,返回的是return後面的物件

建立物件的模式

1、工廠方法

// 工廠就是用來生產的, 因此如果函式建立物件並返回, 就稱該函式為工廠函式

function createperson( name, age, gender ) ;

o.name = name;

o.age = age;

o.gender = gender;

return o;

}// document.createelement()

2、構造方法

function person(name, age, gender)

var p = new person("zhangsan", 19, "男");

3、寄生式建立物件

function person(name, age, gender);

o.name = name;

o.age = age;

o.gender = gender;

return o;

}var a = ; // 偽陣列

a[ a.length++ ] = 'abc'; // a[ 0 ] = 'abc'; a.length++;

a[ a.length++ ] = 'def';

// 需要提供乙個 student 的建構函式建立學生物件

// 學生也應該有 name, age, gender, 同時還需要有 course 課程

function student ( name, age, gender, course )

1、函式模式

特徵就是乙個簡單的函式呼叫,函式名前面沒有任何的引導內容

this含義

this在函式模式中表示全域性物件,在瀏覽器中是windjow物件

2、方法模式

特徵方法一定是依附與乙個物件,將函式賦值給物件的乙個屬性,那麼就成為了方法

this含義

this在方法模式呼叫中表示所依附的這個物件

3、構造器呼叫模式

與方法模式的this的區別

由於建構函式知識給this新增成員,沒有做其他事情,而方法也可以完成這個操作,就this而言,建構函式與方法沒有本質區別

特徵使用new關鍵字,來引導建構函式

this的區別

建構函式中的this與方法中一樣,表示物件,當是建構函式中的物件是剛剛建立出來的物件

return關鍵字

關於建構函式中 return 關鍵字的補充說明

建構函式中不需要return,就會預設的 return this;

如果手動的新增return 後面不寫值 , 就相當於return this;

如果手動的新增return基本型別,無效,還是保留原來的返回this 即 return this;

如果手動新增 return null 或 return undefined ; 無效

如果手動新增 return 物件型別,那麼原來建立的this 就會被丟掉,返回的是return後面的物件

建立物件的模式

1、工廠方法

// 工廠就是用來生產的, 因此如果函式建立物件並返回, 就稱該函式為工廠函式

function createperson( name, age, gender ) ;

o.name = name;

o.age = age;

o.gender = gender;

return o;

}// document.createelement()

2、構造方法

function person(name, age, gender)

var p = new person("zhangsan", 19, "男");

3、寄生式建立物件

function person(name, age, gender);

o.name = name;

o.age = age;

o.gender = gender;

return o;

}var a = ; // 偽陣列

a[ a.length++ ] = 'abc'; // a[ 0 ] = 'abc'; a.length++;

a[ a.length++ ] = 'def';

// 需要提供乙個 student 的建構函式建立學生物件

// 學生也應該有 name, age, gender, 同時還需要有 course 課程

function student ( name, age, gender, course )

函式的四種呼叫模式

總結筆記,參考文件 1 函式模式 最普通的函式呼叫 1 宣告式函式 2function fn1 5 函式表示式函式 6var fn2 function 9 呼叫 函式中this表示全域性物件,在瀏覽器中就是指window 10 fn1 window 11 fn2 window 2 方法模式 函式依附...

函式四種呼叫模式以及this指向

第一種 函式執行模式 function add a,b add this window true第二種 物件方法的呼叫模式 function cat var c new cat c.show 物件呼叫自己的方法 this c 呼叫事件響應的方法都是,物件方法呼叫模式第三種 構造器的呼叫 functi...

函式的四種呼叫模式及this指向

一.根據函式內部this的指向不同,可以將函式的呼叫模式分成4種 函式呼叫模式 方法呼叫模式 構造函式呼叫模式 上下文呼叫模式 借用方法模式 首先先來分析this指向問題 1.任何函式都有屬於自己的this 2.this的指向和函式的呼叫模式相關,意味著this的指向在函式宣告的時候確定不了.然後分...