orientado objetos objeto herencia ejemplos crear clases array agregar javascript object instances

herencia - JavaScript crea una nueva instancia de objetos



javascript orientado a objetos pdf (2)

Así que estoy diseñando una interfaz de libro de calificaciones y tengo un curso definido como:

<script> course = new Object(); var name; var gradingareas; var finalgrade; </script>

luego, quiero crear una nueva instancia:

var gradingareas = new Array("Homework", "Classwork", "Exams"); course1 = new course("CS1500", gradingareas, 85);

También he intentado sin la var en frente inútilmente. Obtengo un "TypeError no detectado: el objeto no es una función". Soy muy nuevo en javascript, así que ni siquiera sé si estoy haciendo esto de la manera correcta. Cualquier ayuda es apreciada Gracias.


Su código existente:

// Creates a new, empty object, as a global course = new Object(); // Creates three new variables in the global scope. var name; var gradingareas; var finalgrade;

No hay conexión entre las variables y el objeto.

Parece que quieres algo más como:

function Course(name, gradingareas, finalgrade) { this.name = name; this.gradingareas = gradingareas; this.finalgrade = finalgrade; }

Entonces:

var course1 = new Course("CS1500", gradingareas, 85);

Tenga en cuenta el uso de una letra mayúscula para nombrar la función constructora. Esta es una convención en la comunidad JS.


JS es prototípico, más que de clase, y si eres nuevo en esto, hay ventajas de aprender esto de forma inmediata en lugar de tratar de extraer modelos clásicos de herencia de él, sin embargo, la herencia clásica está viva y bien en JS.

De todos modos, para responder cómo accedería a sus variables:

course1.name funciona bien con el ejemplo anterior.

Si desea privatizar sus datos, puede utilizar este enfoque mediante el cierre:

var Course = function(name, grade) { // Private data var private = { name: name, grade: grade } // Expose public API return { get: function( prop ) { if ( private.hasOwnProperty( prop ) ) { return private[ prop ]; } } } };

A continuación, crea una instancia de un nuevo objeto:

var course = new Course(''Programming with JavaScript'', ''A'');

y comienza a usar todos esos datos privados:

course.get(''name'');

Por supuesto, probablemente también quieras que los setters manipulen esa información;)