使用原型对象可以更好的解决构造函数的内存浪费问题。
<script> // 定义构造函数 function Person(name,age) { this.name = name; this.age = age; } // 获取 构造函数 的 prototype 属性 console.log(Person.prototype); // 属性值是一个对象,通常叫做原型对象 // 对象内部可以添加一些属性和方法 Person.prototype.type = “human”; Person.prototype.sayHi = function () { console.log(“hello”); }; // Person.prototype.constructor = Array; // 构造函数的 原型对象上面都默认有一个 constructor 属性 // console.log(Person.prototype.constructor); // 创建实例对象 var p1 = new Person(“Mike”,18); // 所有的对象都有一个 proto 的属性,是一个指针, 指向的就是生成实例对象的 构造函数的原型对象 console.log(p1.proto); console.log(p1.proto === Person.prototype); // proto 属性并不是一个标准的属性,是浏览器自己根据语法自动生成的 // p1.proto.sayHi(); // 在真正开发的过程中,是不会书写 proto 属性的 p1.sayHi(); // console.log(p1.constructor); // console.log(p1 instanceof Person); </script>