原型与原型链,一个非常常见且重要的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;
通过打印控制台可以看到