什么是原型
原型在JS中的名称是 prototype
,它是挂载在构造函数上的一个用于继承时可以共享的一个对象,在我们声明一个函数时,这个对象会自动创建。它是一个显示的属性,并且只有函数才有,但有一个例外:
let fun = Function.prototype.bind()
什么是原型链
原型链在JS中的名称是 __proto__
,它是每个对象都有的一个隐式原型属性,指向创建该对象的构造函数的原型。由于 prototype
也是一个对象,所以prototype
也有一个__proto__
指向生成它的构造函数的原型,这样一层一层地原型指向,形成了原型链。
function Person(name, age) {
this.name = name;
this.age = age;
}
var person1 = new Person();
person1.__proto__ === Person.prototype;
Person.prototype.__proto__ === Object.prototype;
person1.hasOwnProperty("name");
可以看到,person1
通过一层一层的原型链关联,最后它拥有 Object
原型函数下面所带有的方法。
它们有什么作用
用于 JS
中使用继承功能时共享父函数中部分属性。
网友评论