Discute si JavaScript es un lenguaje orientado a objetos.
Algunos críticos dicen que JavaScript no está verdaderamente orientado a objetos porque no puede ocultar información. Es decir, un objeto no puede tener variables y métodos privados: todos los miembros son públicos. Pero luego resultó que los objetos javaScript pueden tener variables y métodos privados. También hay críticas de que JavaScript no puede proporcionar herencia, pero se ha demostrado que JavaScript no solo puede admitir la herencia tradicional sino también aplicar otros patrones de reutilización de código.
Es un juicio correcto y ligeramente conservador decir que JavaScript es un lenguaje basado en objetos, pero es una percepción errónea decir que JavaScript no está orientado a objetos. De hecho, hay buenas razones para demostrar que JavaScript es un lenguaje orientado a objetos, pero en comparación con el tradicional orientado a objetos basado en clases, JavaScript tiene su propia singularidad, lo que llamamos orientado a objetos basado en prototipos.
-
¡Porque js es un lenguaje débilmente tipado, a diferencia de c++ y C#! No admite la sobrecarga de métodos de función. Si escribió un método antes y luego escribe un método con el mismo nombre, ¡sobrescribirá el último método de forma predeterminada! ¡Esta situación es la misma que en PHP!
A diferencia de C# y otros lenguajes que admiten la sobrecarga de funciones, ¡llama diferentes métodos basados en diferentes parámetros y valores de retorno!
En cuanto a si 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! Por ejemplo
var cls={
Mi:{a:0},
init:function()
{ p>
alerta(este. mi. a);
}
};
ventana.onload=función()
{
cls.init();
}
Llamar a cls.init();
Esta es su clase, pero carece de muchas características orientadas a objetos. ¡Está muy claro arriba! Por tanto, no está completamente orientado a objetos.
¡La orientación a objetos es solo una forma de pensar, una forma de resolver problemas!