Node.js 中 Java类的定义,set、get方法,类的实例化,继承的实现,方法重写:学习心得 (2)

​ 函数创建时,Node.js会为这个函数自动添加prototype属性,值是空的字典表对象{}
​ 在let person=new Person();时 ,此时function Person(){} 就是一个构造函数(constructor)
​ 那么JS就会帮你创建该构造函数的实例
​ 该实例 会继承 构造函数内 已定义的 prototype指向的所有属性和方法
​ 该实例 通过 设置自己的__proto__ 指向构造函数的 prototype来实现这种继承

​ Node.js通过__proto__和prototype的合作实现了原型链、对象的继承

​ Node.js是单继承的,Object.prototype是原型链的顶端,类似于Java的Object类

​ 构造函数,通过prototype来存储要共享的属性和方法,也可以设置prototype指向现存的对象来继承该对象
​ 对象的__proto__指向自己构造函数的prototype
​ console.log(Ausua.__proto__==Person.prototype); 返回true

注意:prototype 函数的内置属性 显示修改对象的原型的属性
proto 实例对象的内置属性 JS内部使用寻找原型链的属性
ES规范定义对象字面量的原型就是Object.prototype

最后
引用《JavaScript权威指南》的一段描述:
Every JavaScript object has a second JavaScript object (or null , but this is rare) associated with it.
This second object is known as a prototype, and the first object inherits properties from the prototype.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsypd.html