Unity的Javascript基本函数

我有个基本的问题。我在学习使用Javascript函数,我学到使用某些东西创建函数,例如:

function Example(text)
{
    print(text);
}

然后调用它,使用:

Example();

你可以插入字符串或者在在代码最后部分的括号里插入数字,它将传递并把自己插入到你先前创建的函数里。在这种情况下,它将停止输入我所键入到括号内的任何东西。
现在,我的问题是,如果那样做有效,为什么不在我传递两个数字的地方运行,让它们加入工作?我使用的代码是这样的:

Addition(4, 4);
function Addition(a, b)
{
    print(a+b);
}

当我执行这个的时候,Unity告诉我:

Operator '+' cannot be used with a left hand side of type 'Object' and a right hand side of type 'Object'.

我看了这个视频,关于Javascript函数的,大概在第9分钟,视频里的人准确的输入了那个, 并获取脚本为他添加。我是个编程新手,我不知道我错在什么地方,先谢谢大家。

原问题:Basic Functions in Javascript

阅读 4.5k
1 个回答

来自@Joetjah 的回答:

实际上, 在Unity里代码应该是这个样子的:

Addition(4, 4);
function Addition(a:int, b:int)
{
    print(a+b);
}

你得调用函数参数中你期望的参数类型。你在JavaScript中那样陈述是正确的,这通常是不需要的。在Unity中虽然也是。
这是因为它实际上称为UnityScript。之所以叫UnityScript,是因为使用者想要指出Unity的Javascript 与用于浏览器的传统Javascript是大有区别的。
我发现了一个列表,详细展示了UnityScript和Javascript的不同点击here.
当我在那个网页之外创建快速符号列表,我能告诉你区别在哪里(可能不太全面):

  • JavaScript 是 class-free的
  • JavaScript支持在一个var语句多个声明变量
  • 在JavaScript里, 分配被视为一种表达
  • JavaScript中的每一个顶级变量都是全局性的 。此外,任何前面没有var语句的变量声明都是全局性的。
  • Javascript, 动态输入是有效的
  • JavaScript中, 私有是相当非传统的
  • 美元符号($) 在UnityScript标识符中是不允许的,因为它们是Javascript的。
  • UnityScript中没有声明
  • Javascript 支持正则表达式字面量(RegExp或者regex)。
  • 在JavaScript中, 这个可以参考以下两种情况, 根据文本:
  1. 全局对象(这里最好不解释了)
  2. 当前方法或构造函数所述的对象

StackOverflow has this to say about it:
Unity's JavaScript试图紧跟ECMAScript标准,它在许多方面与基于同一标准的JavaScript的其他实现有所变化。或许与Microsoft's Jscript最为相似,尤其是两者都是.NET语言。然而,Unity的版本是独立开发的,有许多两者之间的差异

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题