De acuerdo con this article, debe ser una forma de Javascript 2.0 para definir la clase. Sin embargo, nunca lo vi en la práctica. Por lo tanto, la pregunta. ¿Cómo usar la palabra clave class y cuál es la diferencia entre la forma de hacer Javascript 1.x?Palabra clave de clase en Javascript
Respuesta
La razón por la que nunca vio la palabra clave class
utilizado en la práctica es que all the current implementations of JavaScript are 1.x.
JavaScript 2.0 was merged into ECMAScript 4 which was rather unpopular y así nunca lo hicieron en el mundo real.
Para responder a su pregunta, ¿cómo utiliza la palabra clave class
? No puedes.
Gracias por su comentario. Aunque es gracioso. Visual Studio 2008 lo reconoce como una palabra clave válida al escribir el archivo JavaScript. –
@Validimir - VS2008 probablemente reconozca la palabra clave class como se puede usar en JScript.NET. La clase –
(junto con muchas otras palabras clave de Java) es una palabra reservada para que, teóricamente, el lenguaje pueda agregar soporte sin romper los programas existentes. Hay una lista completa en https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words. –
Nunca lo viste en la práctica porque prácticamente nada es compatible con JavaScript 2.0. Ese borrador es de una especificación que murió antes de ser algo más que un calado.
¡Todavía puedes construir clases en JS usando prototipos!
var foo = function() {
this.hurrah = "yay!";
return this;
}
foo.prototype.doit() {
alert(this.hurrah);
}
Sí. Eso lo sé. –
-1 Ni remotamente aborda la pregunta. – Ben
Si usted tiene un Java o C# fondo, aquí es cómo definir una clase en JavaScript
var MyClass = function (f, l){//constructor
//private members
var firstName = f,
lastName = l,
fullName = function() { //fullName is a private function
return firstName + " " + lastName;
};
return {
//public members
getFullName: fullName
};
}
var output = document.getElementById('Output'); //<div id="Output"></div>
var myName = new MyClass("First", "Last");
output.innerHTML = myName.getFullName();
Lo que tienes no es una buena clase, es solo un objeto. Para que pueda llamarlo una clase, debe tener un constructor que no devuelva algo, y la capacidad de adjuntar cosas a su prototipo, y también debería haber una forma de heredar de esa clase. No hay forma de heredar correctamente este objeto porque no tiene una cadena de prototipos.Tenga en cuenta que este enfoque no es compatible con la memoria porque almacena sus métodos en un cierre, en lugar de en el prototipo, esconde miembros privados que los sistemas de clase prototipos estándar JS no lo hacen. –
Sólo para añadir el camino de la toma de ECMA5 clase.
Tenga en cuenta que no tiene una función constructora de esta manera (pero se puede activar una función init si lo desea)
var Class = {
el: null,
socket: null,
init: function (params) {
if (!(this.el instanceof HTMLElement)) {
throw new Error('Chat room has no DOM element to attach on.');
}
return this.doStuff();
},
doStuff: function (params) {
return this;
}
};
var instanceofClass = Object.create(Class, {
el: {
value: document.body.querySelector('.what ever')
},
someMoreData: {
value: [0,5,7,3]
}
}).init();
* Editar trasladó Descripción de bloque de código
Sé que esto es una publicación anterior, pero a partir de hoy es decir con la llegada de ECMAScript 6 podemos declarar clases de JavaScript.
La sintaxis es la siguiente:
class Person{
constructor(name){
this.name = name;
}
printName(){
console.log('Name is '+this.name);
}
}
var john = new Person('John Doe');
john.printName(); // This prints 'Name is John Doe'
Una guía completa de esto se puede encontrar en this post
- 1. Palabra clave predeterminada de Javascript
- 2. "con la" palabra clave en javascript
- 3. La palabra clave 'describir' en javascript
- 4. Clang C Palabra clave 'clase' compilador?
- 5. Javascript paquete, es una palabra clave reservada
- 6. Escriba palabra clave en clase y declaraciones de instancia
- 7. nueva palabra clave sin nombre de la clase en C#
- 8. Palabra clave abstracta en PHP
- 9. ¿Puedo usar la palabra clave `abstracta` en la clase C++
- 10. esta palabra clave en android
- 11. ¿Cuál es la palabra clave `name` en JavaScript?
- 12. iterando Javascript matrices con el "en" palabra clave
- 13. ¿Qué significa la palabra clave 'native' en JavaScript?
- 14. ¿Qué efectos secundarios tiene la palabra clave 'nuevo' en JavaScript?
- 15. Operación confusa de la palabra clave `var` de JavaScript
- 16. Constantes de JavaScript | El estilo y la palabra clave
- 17. palabra clave privada vs no palabra clave privada
- 18. palabra clave foreach en java?
- 19. palabra clave estática en C#
- 20. palabra clave "agradable" en C++?
- 21. Palabra clave "Sobrecarga" en VB.NET
- 22. palabra clave "nueva" en Scala
- 23. palabra clave predeterminada en php
- 24. palabra clave 'fuera' en C++
- 25. palabra clave "exists" en Python?
- 26. USO palabra clave en Mysql
- 27. Súper palabra clave en Ruby
- 28. Registro palabra clave en C++
- 29. ¿Cómo ocultar una clase con una palabra clave interna?
- 30. delegado vs. delegar palabra clave
el artículo da una explicación decente –
Las palabras "Febrero de 1999 Proyecto" en grandes letras rojas en la parte la parte superior de la página debe ser una pista de que el artículo probablemente no tenga mucha relevancia para el mundo real ;-) – NickFitz
¿Te refieres al borrador HTML 5 que ahora es realmente una especificación? ;) –