乐趣区

原型与原型链的理解

原型与原型链,一个非常常见且重要的 js 知识点。在网络上相关的教程有很多,说得很不错。

但个人认为,真正掌握一个知识点在于可以组织自己的语言并清楚描述,是什么,为什么和怎么用。

原型和原型链是什么

首先要清楚一个知识点,Object 是所有对象的爸爸;
所有的对象都会有__proto__属性(除了 null), 指向了构造它的函数的原型;
函数也是对象,但它多了一个 prototype 属性,prototype 是函数的原型对象,也有该函数所有实例的原型对象。

下面以一个构造函数和它的实例举例

 function Person(name, gender) {
     this.name = name;
     this.gender = gender;
 }
 Person.prototype.getName = function() {console.log('my name is' + this.name);
 }
 let boy = new Person('jack', 'male');
 boy.getName(); // my name is jack;

通过打印控制台可以看到

退出移动版