6

我正在阅读一篇关于 Unity JS 的文章。文章展示了unity js中的一个类的例子。

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

看起来 Unity JS 实际上支持该class关键字。它如何支持classJavaScript?他们是在使用死掉的 ES4 规范还是修改后的 ES3 或 5?

4

2 回答 2

9

查看这篇关于 UnityScript 和 JavaScript 之间差异的文章:http ://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript

此外:Wikipedia将 UnityScript 描述为“具有受 ECMAScript 启发的语法的自定义语言”

于 2012-09-07T08:11:37.943 回答
1

Unity 的 Javascript 不是真正的 Javascript,它是一种语法相似的初学者新语言。有些人喜欢称它为 UnityScript,因为它们只是两种不同的语言。

Unity 的 Javascript 是一种基于类的 OO 语言,它支持所有 OOP 功能,并且可以编译为与 Unity 中的 C# 相同的汇编代码。

例如,Unity 中的 javascript 文件“Foo.js”

var myVar : int;
function Update() {}

与 C# 脚本相同

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

我的意思是 100% 相同,即使您在 Foo.js 中找不到关键字“类”,但您实际上是在创建一个 Foo 对象。

您可以在另一个脚本“Boo.js”中继承类 Foo 来验证我所说的:

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

Unity 的 javascript 有 javscript 的语法,但有 C# 的精神。

于 2012-09-08T06:54:19.293 回答