Objeto prototipo

concepto

1 Dividimos los objetos en JS en objetos ordinarios y objetos de función.
2 Los objetos de función tienen propiedades de prototipo - excepto Function.prototype - los objetos ordinarios no tienen esta propiedad.
3 Todas las funciones son instancias de constructores de Function () - Function.prototype = = fn / Function.prototype.prototype == ubdefined
4 La función principal de prototype -todas las propiedades y métodos agregados al objeto prototipo serán compartidos por todos los objetos de instancia- es decir,
5 objetos heredados tienen propiedades proto ocultas-los navegadores convencionales vienen con , no para desarrolladores.
6 objetos tienen un atributo de constructor - el valor del atributo es el constructor o clase del objeto.
7 constructor raíz Objeto - Object.prototype.hh = 777 -> todos los objetos pueden acceder a hh.
8 prototipos Chain- es la relación de acceso especial entre múltiples prototipos
9 prototipo == Objeto prototipo JS / objeto prototipo que viene con el navegador proto

Relación entre prototipos

1 理解
	1 obj.__proto__ == obj构造器的 prototype   -- 一个对象可访问它原型链上的所有属性和方法 
	2 构造器的 __proto__ == ƒ () {
    
     [native code] }
	3 Object == 根构造器
	4 Object.prototype == 原型链的末端     // 例 -- 所有对象可以使用 toString() 的原因就是, 该方法存在于原型链的末端
	5 Object.prototype.__proto__ == null     // 说明根构造器的原型对象没有构造器

2 常见场景
	1 创建字符串 -- var str = "zhang"
	2 原型指向 -->  str.__proto__ == String.prototype
	3 原型指向 -->  String.prototype.__proto__ === Object.prototype   //记住 String这类构造器的 __proto__ 就是直接指向原型链子末端的
	4 原型指向 -->  Object.prototype.__proto__ === null

4 案例解析
	1 Object.prototype.hh = 77   -->  var str = "zhang"  --> console.log(str.hh)  // 77
	2 浏览器通过原型链查找 hh 属性过程
		1 str.hasOwnProperty('abc')   false  
		2 str.__proto__.hasOwnProperty('abc')   false
		3 str.__proto__.__proto__.hasOwnProperty('abc')   true -> 返回 hh 的属性值 66
		4 str.__proto__.__proto__ == String.prototype.__proto__ == Object.prototype

heredar

1 concepto

La herencia en JS se realiza a través del prototipo: el método de propiedad del prototipo puede ser compartido por la propia cadena de prototipos de objetos de instancia del prototipo
.

2 formas de herencia

1 La herencia del constructor tiene limitaciones ...
2 La herencia del prototipo no es razonable ...
3 La herencia de copia de los objetos padre e hijo se verá afectada ...
4 Métodos de herencia
de uso común para la herencia mixta 5 Métodos de herencia de uso común para la herencia de clases

3 -- 混合继承的实现方式

Supongo que te gusta

Origin blog.csdn.net/weixin_46178697/article/details/112789755
Recomendado
Clasificación