1.如何使用构造器?
function Person(name, age) {
this.name = name;
this.age = age;
}
var man = new Person("张三", 50);
2.什么是原型链?
a.所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法;
b.JavaScript 中的对象都是位于原型链顶端的 Object 的实例;
c.JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型proto(即它的构造函数的prototype),以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。
![](https://img2020.cnblogs.com/blog/1909089/202109/1909089-20210928152212266-267222729.jpg)
3.如何正确的给对象构造器中添加新的属性?使用 prototype 属性就可以给对象的构造函数添加新的属性或方法(而不是通过对象字面量)
Person.tall = "1.8m"; Person.prototype.sex = "男"; var man1 = new Person("李四", 22); console.log(man1)//person{age: 22,name:'李四'} console.log(man1.tall)//undefined console.log(man1.sex)//男
或方法:
Person.prototype.toString=function(){ return this.name+"已经"+this.age+"岁了"; }; var man1 = new Person("王五", 23); console.log(man1.toString())//王五已经23岁了