2012-09-07 15 views
6

Stavo leggendo un articolo su Unity JS. L'articolo mostrava un esempio di una classe in unità js.In che modo Unity JS ha una classe?

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); 

Sembra Unità JS supporta in realtà la parola chiave class. Come supporta class con JavaScript? Stanno usando le specifiche ES4 morte o un ES3 o 5 modificato?

risposta

9

leggi questo articolo sulle differenze tra UnityScript e JavaScript: http://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript

Inoltre: Wikipedia descrive UnityScript come "un linguaggio personalizzato con la sintassi ECMAScript di ispirazione"

+0

Benvenuti in Stack Overflow! Un breve sommario del contenuto collegato migliorerebbe notevolmente questa risposta (e aiuta a prevenire problemi se il collegamento diventa obsoleto in un secondo momento). –

+1

Ai fini di questa domanda, penso che la frase più importante di quell'articolo sia "Unity". Il linguaggio "js" non si avvicini nemmeno a conformarsi a quella [specifica di ECMAScript] ". –

+0

Un breve riassunto sarebbe bello come sottolineato da Joachim Saucer, ma suppongo che debba accettarlo come risposta. Le informazioni sul link sono accurate. – Moon

1

Javascript di Unity non è reale Javascript, è è una nuova lingua con sintassi breve per il principiante di Unity. Qualcuno lo chiama UnityScript perché sono solo due lingue diverse.

Unity's Javascript è un linguaggio OO basato su classi che supporta tutte le funzionalità OOP e verrà compilato con lo stesso codice gestito come C# in Unity.

ad esempio, un file JavaScript denominato "Foo.js" in Unity

var myVar : int; 
function Update() {} 

è lo stesso di C# script come seguito

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

voglio dire al 100% identico, anche se non v'è alcuna parola chiave 'classe' in Foo.js, ma in realtà crei una classe Foo.

è possibile eredita classe Foo in un altro script "Boo.js" per verificare quello che dico: la sintassi javscript

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

di Unity ha di javscript, ma lo spirito C# 's.

Problemi correlati