標籤:賦值 它的 cti 建構函式 申請 形參 聯絡 類型 運算
要想搞明白建構函式,就要先弄懂什麼是函數?以及js中有哪幾種函數的建立形式。
什麼是函數?
函數簡單的說就是重複執行的代碼塊;按照JavaScript 權威指南(第六版)
書中的說法:函數是這樣的一段JavaScript 代碼,它只定義一次,但可能被執行或調用任意次。
Js 中有哪幾種建立形式呢?
函數使用function 關鍵字來定義,其後跟隨,函數名稱標識符、 一對圓括弧、一對花括弧。 JavaScript 中有三種建立形式,分別是:
① 聲明式
function fn( ){ }; 這種定義的方式,無論在哪兒定義,別處都可以調用 ;
② 函數的字面量或叫直接量或稱運算式
var fn=function () { }; 此時函數作為運算式存在,調用只能在定義的後面;
解釋一下運算式:凡是將資料和運算子等聯絡起來有值得式子就是運算式。
③ 以new Function 的形式
var fn = new Function (arg1 , arg2 ,arg3 ,…, argN , body )
解釋:
Function 建構函式所有的參數都是字串類型。除了最後一個參數, 其餘的參數都作為產生函數的參數即形參。這裡可以沒有參數。最後一個參數, 表示的是要建立函數的函數體。
另外,js 中任意函數都是Function 的執行個體。
有了以上的鋪墊 就可以來說明什麼是建構函式了:
構造:它是設計,組合。將沒有的東西先概念實現,比如建築圖紙
建構函式:首先,它是函數,並且任何的函數都可以作為建構函式存在 ,它的本質是初始化對象。建構函式都是和new 關鍵詞一起使用的。 new 就是在建立對象,從無到有,建構函式就是在為初始化的對象添加屬性和方法( 成員 ) 好比:
this.name = xiaoming;
this.age = 10;
this.gender = ‘男‘;
其實剛才的建立函數的第三種方法就是利用建構函式的方式實現的
如: var obj = new Person( “xiaoming ”, 10 ,” 男” ) ;
有了建構函式,那構造對象就成以下四步了:
1, new 申請記憶體, 建立對象
2, 調用建構函式, 建構函式有一個隱式參數, 即 this
3, 剛建立出來的對象的引用 賦值給 this, 由函數處理.
4, 在建構函式中利用 this.成員 = 值 來給對象新增成員 .
以一個典型的案例結尾 :
Function Person( name,age,gender ) {
this.name = name;
this.age=age;
this.gender = gender;
this.sayHello = function () {
console.log( ‘Hello ‘+ name );
};
}
var P1= new Person(‘jim‘,10, ‘男’);
var P2= new Person(tom,20, ‘女);
建構函式 函數域