Los prototipos y los cierres son los más comunes, más difíciles de entender, y más fácilmente considerados como dos partes del problema en JavaScript. Por supuesto, también tienen sus extensiones, como cadenas de alcance, herencia, etc. Recientemente, también las he leído de varias maneras, las volteé a todas y grabé mis propias experiencias. Escribir siempre profundizará. (No tiene nada que ver con el título, así que suspiré. Cada vez que siento que entiendo, todavía obtengo muchas recompensas después de leerlo)
Primero hablemos sobre la nueva palabra clave en JavaScript. Por lo general, lo usamos para crear un objeto de instancia de una clase. En JavaScript, después de instancias del objeto, heredamos los atributos y métodos de la clase. Demostrarlo a través del código
Function Person (name) {this.name = name;} persona.age = "23"; persona.prototype.say = function () {console.log ("soy" + this.name);}; var persona = nueva persona ("wang fang"); console.log (persona.name, // wang fang persona.height // indefinido); persona.say (); // soy wang fang console.log (persona.name, // persona persona.age // 23); persona.say (); //Person.say no es una funciónEchemos un vistazo a esta línea
Var Person = nueva persona ("Wang Fang");
¿Qué hicieron los nuevos? El siguiente es lo que hace el trabajo del motor JS
var obj = {}; obj .__ proto__ = persona.prototype; var result = persona.call (obj, "wang fang"); return typeOf result === 'obj'? Resultado: obj;1. Cree un nuevo objeto primero
2. Apunte el prototipo de objeto prototipo de prototipo de OBJ OBJ, y luego se establece la cadena prototipo del objeto OBJ: obj-> persona.prototype-> objeto.prototype-> nulo
3. Llame a la función de la persona en el espacio de ejecución del objeto OBJ y pase el parámetro "Wang Fang". Es equivalente a VAR result = obj.person ("Wang Fang"). Después de ejecutar esta oración, OBJ genera el nombre del atributo y lo asigna a "Wang Fang".
4. Determine el valor de retorno. Si no hay un valor de retorno o se devuelve un valor no objeto, devuelva OBJ. De lo contrario, el valor de retorno se devuelve como un nuevo objeto (un poco de giro, operador ternario, consulte usted mismo)
Resumir:
La función principal de la nueva palabra clave de JavaScript es la herencia, como se menciona en el ejemplo anterior, pero recuerde que esa persona es una función, mientras que la persona es un objeto. En cuanto a la diferencia entre funciones y objetos, la volveré a escribir si tengo tiempo.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.