Resumen sobre el objeto prototipo

prototipo prototipo

  1. Cada función que hemos creado, el analizador añadir un alojamiento a la función prototipo, esta propiedad corresponde a un objeto que es lo que llamamos objeto prototipo.
  2. Si el prototipo de función como una llamada a la función ordinaria no tiene ningún efecto.
  3. Cuando la función se llama a construir la forma de una función, el objeto de su creado tendrá una propiedad implícita, señalando el constructor de objetos prototipo, que puede acceder a la propiedad a través de __proto__.
  4. objeto prototipo es equivalente a un área pública, todas las instancias de la misma clase puede acceder al objeto prototipo, el objeto puede ser común a los contenidos, conjunto unificado al objeto prototipo.
  5. Cuando una propiedad o método de acceso al objeto, que se encontrará en la primera, si no se utiliza directamente, si no, para encontrar el objeto prototipo.
function MyClass() {
	
}
// 向MyClass的原型中添加属性a
MyClass.prototype.a = 123;
// 向MyClass的原型中添加方法 fun,同理
MyClass.prototype.sayName = function fun() {
	alert('123');
};
var mc = new MyClass();
console.log(MyClass.prototype);
console.log(mc.__proto__);
console.log(mc.__proto__ == MyClass.prototype); // true
console.log(mc.a)
  1. Cuando se crea un constructor más tarde, estos objetos pueden ser propiedades y métodos compartidos, la unidad agrega al objeto constructor de prototipo, por lo que no lo hacen por separado para cada objeto se añade, que no afectará el ámbito global, puede hacer que cada objeto tenemos estas propiedades y métodos de.
  2. Cuando su uso en la comprobación de si el objeto contiene una propiedad, pero si el objeto no tiene un prototipo, devolverá true. Ya sea que el objeto puede ser usado hasOwnProperty () para comprobar el objeto que contiene el atributo en sí.
console.log("a" in mc)
console.log(mc.hasOwnProperty(“a”));

objeto prototipo es un objeto, por lo que también tiene un prototipo.
Cuando una propiedad o método de un objeto, va a encontrarse ahora, sí tienen la utilización directa, no para ir a buscar el objeto prototipo, si se utiliza el objeto prototipo, si no es el prototipo de objetos prototipo en mirando. Hasta que encuentre el objeto prototipo de objeto. objeto prototipo objeto no es un prototipo, si aún no se encuentra en el objeto, se devuelve indefinido.

// hasOwnProperty在原型的原型里
console.log(mc.__proto__.__proto.__.hasOwnProperty("hasOwnProperty");
Publicado 27 artículos originales · ganado elogios 4 · Vistas 2821

Supongo que te gusta

Origin blog.csdn.net/qq_39083496/article/details/102775231
Recomendado
Clasificación