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 對象的認知就多了一些markdown
原文連接app