Gregogy ha hecho un post sobre rebol y javascript aquí http://blog.revolucent.net/2009/05/javascript-rebol.html¿Rebol realmente tiene un equivalente para la propiedad de prototipo javascript?
Pero como voy profundo en que comparan javascript y rebol, no puede ver lo que es el equivalente de rebol JavaScript prototipo. Debido a que extender una instancia de objeto desde otra con make in rebol no es exactamente como la propiedad de prototipo de JavaScript, ya que js prototype permite extender TODAS las instancias a la vez.
Así que estoy equivocado o hay un equivalente del código de abajo para rebol:
<html>
<head>
</head>
<body>
<script>
function Person(firstName, lastName, sex) {
this.firstName = firstName;
this.lastName = lastName;
this.whoAreYou = function() {
alert("I've been built with Constructor and my name is " + this.firstName + " " + this.lastName);
}
this.WhatIsYourSex = function() {
alert(this.sex);
}
};
Person.prototype.sex = "Man";
</script>
<script>
JaneDoe = new Person("Jane", "Doe");
JaneDoe.whoAreYou();
JaneDoe.WhatIsYourSex();
alert("Are you sure?");
JaneDoe.sex = "Woman";
JaneDoe.WhatIsYourSex();
</script>
</body>
</html>
Actualización: No me importa sobre el azúcar sintáctica, por supuesto. Nada impide la extensión en R2 simplemente redefiniendo un objeto. Mi pregunta no es sobre la extensión de un objeto INSTANCE sino sobre la extensión de TODAS LAS INSTANCIAS a la vez: eso es lo que permite la propiedad del prototipo js.
Así que para reformular mi pregunta: Can Rebol también permite extender AUTOMÁTICAMENTE TODAS LAS INSTANCIAS de los niños extendiendo la clase padre como javascript, cualquiera que sea la sintaxis no me importa?
Para un rendimiento seguro, veo la diferencia entre R2 y R3 para una instancia pero en cuanto a la función funcional del idioma no tengo la extensión automática de todos los objetos secundarios, lo cual es una gran carga ya que tendré que gestionarlos yo mismo, que será bastante lento ya que el sistema no lo hace. ¿Qué sucede si quiero crear un marco como jquery que dependa en gran medida de este tipo de características? Sería una gran molestia.
Comparar los lenguajes en la sintaxis es bastante ... tonto. Por supuesto, habrá similitudes, especialmente si ambos son lenguajes funcionales con conceptos tomados de Self, Lisp y Scheme ... Vea cuánto CoffeeScript se parece a JavaScript o compárelo con Groovy para ese asunto = P – BGerrissen
¿Quién habla de comparar la sintaxis? ? Se trata de comparar capacidades, por supuesto. No me importa 1 centavo acerca de la sintaxis. –
Nunca hice ningún reclamo de ese tipo en mi publicación de blog, Rebol Tutorial, pero me alegro de que terminó haciéndolo aprender más acerca de REBOL. Los lenguajes prototipo pueden funcionar de diferentes maneras. REBOL es un lenguaje prototipo porque crea objetos nuevos en función de los objetos existentes en lugar de las especificaciones de clase. –