使用new關鍵字調用函數(new Person(…))的具體步驟:
1. 創建空對象; var obj = {}; 2. 完成原型鏈的構建
- 將所創建對象的__proto__屬性值設為構造函數的prototype的屬性值,,即指向構造函數的原型對象
設置新對象的constructor屬性為構造函數的名稱,設置新對象的__proto__屬性指向構造函數的prototype對象; obj.__proto__ = Person.prototype; 3.執行構造函數中的代碼,構造函數中的this指向new出對象4. 返回對象,並賦給等號左邊的變量 注意:若構造函數中返回this或返回值是基本類型(number、string、boolean、null、undefined)的值,則返回新實例對象; 若返回值是引用類型的值,則實際返回值為這個引用類型。
<script> function Person(name, age) { this.name = name; this.age = age; } Person.prototype.eate = function () { return this.name + "在吃飯" } var p1 = new Person("小明", 18); alert(p1.eate()) </script>