JS:用new運算子呼叫函式、建構式、類和實體
一、用new運算子呼叫函式
JS規定,使用new運算子呼叫函式會進行“四步走”
1)函式體內會自動創建出一個空白物件
2)函式的背景關系(this)會指向這個物件
3)函式體內的陳述句會執行
4)函式會自動回傳背景關系物件,即使函式沒有return陳述句
二、舉例
第1步:函式體內會自動創建出一個空白物件
第2步:函式的背景關系(this)會指向這個物件
function fun() {
//在函式體開頭,自動創建了一個空白物件{}
//this指向空白物件
this.a = 3;
this.b = 5;
}
var obj = new fun();
console.log(obj);
第3步:執行函式體中的陳述句
this.a = 3;
this.b = 5;
//由以上this是{},即 最后陳述句為{a: 3, b: 5}
第4步:函式會自動回傳背景關系物件,即使函式沒有return陳述句

最后結果:{a: 3, b: 5}
總結:背景關系規則

三、建構式
1.建構式:在 JavaScript 中,用 new 關鍵字來呼叫的函式,稱為建構式,建構式首字母一般大寫,
function People(name, age, sex) { //接收三個引數
this.name = name;
this.age = age;
this.sex = sex; //this上系結同名屬性
}
var xiaoming = new People('小明', 12,'男'); //傳入三個引數
var xiaohong = new People('小紅', 10,'女');
var xiaogang = new People('小剛', 13,'男');

(1)用new呼叫一個函式,這個函式就被稱為“建構式”,任何函式都可以是建構式,只需要用new呼叫它
(2)建構式用來“構造新物件”,它內部的陳述句將為新物件添加若干屬性和方法,完成物件的初始化
(3)建構式必須用new關鍵字呼叫,否則不能正常作業,正因如此,開發者約定建構式命名時首字母要大寫
(4)一個函式是不是建構式,要看它是否用new呼叫,而至于名稱首字母大寫,完全是開發者的習慣約定
(5)建構式中的this不是函式本身,this是創建的新物件,將來會成為小明、小紅、小剛等
四、類和實體:實體是具體的物件

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/401657.html
標籤:其他
