函式的四種呼叫模式
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的指向在函式宣告的時候確定不了.然後分...