Comprender la relación entre la función constructora para el prototipo con la cadena de cuatro prototipo

En primer lugar: ¿Cómo entender la misma función punto, constructores y diferencias?

  1. El constructor es una función ordinaria, y la manera de crear una función normal no es diferente, excepto que la primera letra en mayúscula hábito de constructores.
  2. La diferencia entre un constructor y una función ordinaria se invoca diferentes maneras, función ordinaria se llama directamente, mientras que la necesidad de usar constructor de la nueva palabra clave a la llamada.
    Por ejemplo: una persona crear una función constructora y Persona
//普通函数
function person(name , age ,gender){
	//创建一个新的对象
	var obj = new Object();
	//向对象中添加属性
	obj.name = name;
	obj.age = age;
	obj.gender = gender;
	obj.sayName = function(){
		alert(this.name);
	};
	//将新的对象返回
	return obj;
}
//普通函数的调用
var obj = person("蜘蛛精",18,"女"); 
console.log(obj);

//构造函数
function Person(name , age , gender){
	this.name = name;
	this.age = age;
	this.gender = gender;
	this.sayName = function(){
		alert(this.name);
	};
}
// 构造函数的调用
var per = new Person("猪八戒",28,"男");
console.log(per);
  1. Objeto creado por funciones ordinarias son las instancias de objeto de los objetos creados por el constructor de su propia instancia, pero todos los objetos son descendientes de objetos.

Por ejemplo: En el ejemplo anterior los resultados se ven salida de la consola de la Fig.
Aquí Insertar imagen Descripción
4. Cuando en la forma de una llamada de función, esta es la ventana, y cuando se le llama en el constructor de la forma, este es el objeto recién creado.

//普通函数
function fn() {
	console.log(this) //输出的是window
}
//普通函数的调用
var obj = fn()
//构造函数
function Function() {
	console.log(this) //输出的是Function
}
//构造函数的调用
var Fn = new Function()

En segundo lugar: la relación entre el prototipo y la cadena de prototipos

I, en el prototipo:

  1. Cada función que hemos creado, el analizador añadir un alojamiento a la función prototipo, y la propiedad prototipo de un objeto, el objeto que es el prototipo de esta función, podemos decir que es un prototipo.
  2. Si la función se llama como un prototipo de la función ordinaria no tiene ningún efecto cuando la función se llama como el constructor de objeto que cree tendrá una propiedad implícita, señalando el constructor de objetos prototipo, podemos estar __proto__ el acceso a la propiedad.
  3. objeto prototipo es equivalente a un área pública, todas las instancias de la misma clase puede acceder al objeto prototipo, que puede orientar el contenido son comunes, conjunto unificado al objeto prototipo.

En segundo lugar, en la cadena de prototipo:

  1. objeto prototipo es un objeto, por lo que también tiene un prototipo, cuando usamos la propiedad o método de un objeto, ahora sí encontrará en si no es así, entonces la utilización directa, si no, ir al objeto prototipo de encontrar, si el objeto prototipo tiene se utiliza, si no, ir a buscar el prototipo del prototipo, formando así una estructura de cadena, que llamamos cadena de prototipo.
  2. cadena de prototipo es el prototipo del objeto objeto superior, objeto prototipo de objeto no es un prototipo, si se utiliza una propiedad o método de un objeto, la cadena de prototipos no siempre encuentran el prototipo del objeto, todavía no se encontró se devuelve el prototipo del objeto, sin definir.

La llamada cadena de prototipo se compone realmente de un prototipo objeto objeto prototipo de una estructura de cadena.

En tercer lugar, el prototipo de la función:

  • Cuando se crea un constructor, el objeto se puede 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 tener estas propiedades y los métodos.

En cuarto lugar, cómo comprobar el objeto contiene una sola propiedad

  • Cuando su uso en la comprobación de si el objeto contiene una propiedad, pero si el objeto no tiene un prototipo, devolverá true
console.log("属性名" in 对象名);

En quinto lugar, comprobar si el objeto en sí contiene una cierta propiedad

  • Ya sea que el objeto puede ser usado hasOwnProperty () para comprobar el objeto que contiene el atributo en sí, sólo cuando los atributos contenidos en el objeto en sí mismo, usando este método devolverá verdadero
console.log(对象名.hasOwnProperty("属性名"));

En tercer lugar, las funciones, entre el constructor de objetos prototipo

  • Ordinaria objeto función prototipo es el objeto prototipo de objeto, el prototipo constructor de objetos objeto prototipo es el objeto prototipo de objeto. o función constructora mirada ejemplifican salida.
    Aquí Insertar imagen Descripción
    ** Nota: ** a través de la propiedad constructor entre la pantalla, podemos ver que los puntos de propiedad constructor por defecto a una función normal del objeto prototipo, donde se encuentra el objeto constructor, y los puntos de propiedad constructor para una persona objeto prototipo constructor por defecto constructor.
Publicado 20 artículos originales · ganado elogios 11 · vistas 1748

Supongo que te gusta

Origin blog.csdn.net/qq_16221009/article/details/103096237
Recomendado
Clasificación