function Animal(name){
this.name = name;
}
var cat = new Animal("cat")
複製代碼
Animal 自己是一個普通函數,但當經過new來建立對象時,Animal 就是構造函數。html
JS引擎執行這句代碼時,在內部作了不少工做,用僞代碼模擬其內部流程以下:bash
new Animal('cat') = {
var obj = {};
obj.__proto__ = Animal.prototype;
var result = Animal.call(obj,"cat");
return typeof result === 'object'? result : obj;
}
複製代碼
根據以上過程,咱們發現 cat 其實就是【4】的返回值,所以咱們對 cat 對象的認知就多了一些app
原文連接函數