2012-09-07 17 views
6

Estaba leyendo un artículo sobre Unity JS. El artículo mostró un ejemplo de una clase en la unidad js.¿Cómo tiene Unity JS una clase?

class Person{ 
    var name; 
    var career; 
} 

//Create objects of type Person 
var john = Person(); 
john.name = "John Smith"; 
john.career = "doctor"; 
Debug.Log(john.name + " is a " + john.career); 

Parece que la Unidad JS realmente apoya la palabra clave class. ¿Cómo es compatible con class con JavaScript? ¿Están usando una especificación ES4 muerta o una ES3 o 5 modificada?

Respuesta

9

revisar este artículo en las diferencias entre UnityScript y JavaScript: http://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript

Además: Wikipedia describe UnityScript como "un idioma personalizado con una sintaxis inspirada en ECMAScript"

+0

¡Bienvenido a Stack Overflow! Un breve resumen del contenido enlazado mejoraría en gran medida esta respuesta (y ayudaría a prevenir problemas si el enlace se queda obsoleto en un momento posterior). –

+1

Para los propósitos de esta pregunta, creo que la frase más importante de ese artículo es 'Unity' .js '' lenguaje ni siquiera se acerca a ajustarse a esa especificación [ECMAScript] '. –

+0

Un breve resumen sería bueno como señaló Joachim Saucer, pero creo que tengo que aceptarlo como una respuesta. La información en el enlace es precisa. – Moon

1

Javascript de la Unidad no es real Javascript, se es un nuevo lenguaje con una sintaxis breve para el principiante de Unity. Alguien lo llama UnityScript porque solo son dos idiomas diferentes.

El Javascript de Unity es un lenguaje OO basado en clases que admite todas las características OOP, y se compilará con el mismo código administrado que C# en Unity.

por ejemplo, un archivo JavaScript llamada "Foo.js" en la Unidad

var myVar : int; 
function Update() {} 

es lo mismo que C# script de la siguiente manera

class Foo : MonoBehaviour { 
    int myVar; 
    void Update() {} 
} 

quiero decir 100% idéntica a pesar de que no hay palabra clave 'clase' en Foo.js, pero realmente creas una clase Foo.

puede hereda Foo clase en otro script "Boo.js" para verificar lo que digo: la sintaxis de javscript

class Boo extends Foo { 
    function Update() {} 
} 

de la Unidad ha javscript, pero el espíritu de C# 's.

Cuestiones relacionadas