Red de conocimiento informático - Aprendizaje de código fuente - Discute si JavaScript es un lenguaje orientado a objetos

Discute si JavaScript es un lenguaje orientado a objetos

1 Tiene objetos que pueden contener datos y métodos para procesar datos. Los objetos pueden contener otros objetos. No tiene una clase (antes de que se implementara JavaScript 2.0), pero tiene un constructor que puede hacer lo que una clase puede hacer, incluso actuar como contenedor y función para variables y métodos. No tiene herencia basada en clases, pero sí herencia basada en prototipos. Dos formas de construir un sistema de objetos son mediante herencia y mediante agregación. JavaScript tiene ambos.

2 Algunos comentarios dicen que JavaScript no está verdaderamente orientado a objetos porque no puede ocultar información. Es decir, un objeto no puede tener variables privadas ni métodos privados: todos los miembros son públicos. Pero entonces alguien demostró que los objetos JavaScript pueden tener variables privadas y métodos privados. También hay críticas de que JavaScript no puede proporcionar herencia, pero luego alguien demostró que JavaScript no solo puede admitir la herencia tradicional sino también aplicar otros patrones de reutilización de código.

3 Decir que JavaScript es un lenguaje basado en objetos es un juicio correcto y ligeramente conservador, pero decir que JavaScript no está orientado a objetos es una percepción errónea en mi opinión. De hecho, hay suficientes. Hay razones para demostrar que JavaScript es un lenguaje orientado a objetos. Sin embargo, en comparación con el lenguaje tradicional orientado a objetos basado en clases, JavaScript tiene sus propias características únicas. Esta singularidad se denomina lenguaje orientado a objetos basado en prototipos.

----------------------------------------

Porque js es un lenguaje con tipos débiles. A diferencia de C, C# es un lenguaje con tipos de función. Si escribe un método antes y luego escribe un método con el mismo nombre, se utilizará de forma predeterminada. al método anterior. ¡Anule! ¡Esta situación es la misma que en PHP!

¡No es como C# y otros lenguajes que admiten la sobrecarga de funciones!

Acerca de ¿JS está orientado a objetos? No está completamente orientado a objetos. También se puede escribir como clases, métodos y atributos, ¡pero es ligeramente diferente de otros lenguajes! >

var cls={

mi: {a: 0},

init: función()

{

alerta(this.my.a);

}

};

ventana.onload=función()

{

cls.init();

}

Llamar a cls.init();

Esta es su clase, pero le faltan muchos objetos. Características orientadas a objetos. ¡La persona de arriba lo dijo muy claramente! ¡Dijo que no está completamente orientado a objetos!

¡La orientación a objetos es solo una forma de pensar y una forma de resolver problemas!