创建一个User函数,实例化一个admin对象。
function User() { };
let admin = new User();
User会具有__proto__和prototype两个属性,__proto__一般服务于函数对象本身,prototype一般服务于函数实例化的对象。
在__proto__上添加一个函数getName。这个函数User可以使用,但是admin无法使用。
User.__proto__.getName = function () {
console.log('getName');
}
在prototype上添加一个函数getAge。这个函数User无法使用,但是admin可以使用。
User.prototype.getAge = function () {
console.log('getAge');
}
从下图,我们可以看到,User的__proto__和prototype属性都存在,admin这个User的实例化只有__proto__属性,并且admin的__proto__就是User的prototype。