Просто удивление, что является значением ":" (символ двоеточия) на этом коде JavaScript ниже?
var switchToTarget : Transform;
Спасибо, Gino
Редактировать: Читая больше о Unity, они создали действительно пользовательскую реализацию JavaScript(1) для своего скриптового движка, который компилируется и имеет много сильно типизированных возможностей, он выглядит как ActionScript/ES4, но это не так, язык называется UnityScript.
Двоеточие используется в этой реализации для обозначения типа идентификатора, например:
class Person{
var name : String;
function Person(n : String){
name = n;
}
function kiss(p : Person){
Debug.Log(name + " kissed " + p.name + "!");
}
}
См. также:
Код, который вы опубликовали, не является действительным ECMAScript 3 (это самый распространенный стандарт), это просто выдаст вам SyntaxError
.
Символ двоеточия в JavaScript имеет всего несколько вариантов использования:
Синтаксис объектного литерала:
var obj = { foo: 'bar' };
Условный оператор условный оператор:
var test = condition ? 'foo' : 'bar';
loop1: while (true) {
while (true) {
break loop1; // остановить внешний цикл
}
}
Клаузулы case и default оператора switch:
switch (value) {
case "foo":
//..
break;
default:
//..
break;
}
Может появляться на RegExp литералах:
var re = /(?:)/; // неперехватывающая группа...
Это Adobe ActionScript, производный от javascript.
var switchToTarget: Transform; // объявляем var switchToTarget типа Transform.
var hello: Text = new Text (); // объявляем var hello типа Text и инициализируем его.
http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/geom/Transform.html
Я не уверен, что это часть стандартного JavaScript, но это объявляет тип переменной.
var myVar:Type;
в этом варианте JavaScript было бы эквивалентно этому в нескольких сильно типизированных языках:
Type myVar;