使用new关键字调用函数(new Person(…))的具体步骤:
1. 创建空对象; var obj = {}; 2. 完成原型链的构建 设置新对象的constructor属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的prototype对象; obj.__proto__ = Person.prototype; 3.改变this的指向 使用新对象调用函数,函数中的this被指向新实例对象: Person.call(obj); //{}.构造函数(); 4.执行函数里的代码 5. 将初始化完毕的新对象地址,保存到等号左边的变量中 注意:若构造函数中返回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>
原文:https://www.cnblogs.com/SRH151219/p/10400075.html