使用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>