--- title: Signature (functions)(函数签名) slug: Glossary/Signature/Function tags: - CodingScripting - Glossary - Java - JavaScript - 函数签名 translation_of: Glossary/Signature/Function --- <p>一个<strong>函数签名 (</strong>或<em>类型</em>签名,或<em>方法</em>签名<strong>) </strong>定义了 {{Glossary("Function", "函数")}} 或 {{Glossary("Method", "方法")}} 的输入与输出。</p> <p>一个签名可以包括:</p> <ul> <li>{{Glossary("Parameter", "参数")}} 及参数的 {{Glossary("Type", "类型")}}</li> <li>一个返回值及其类型</li> <li>可能会抛出或传回的 {{Glossary("Exception", "异常")}}</li> <li>有关 {{Glossary("OOP", "面向对象")}} 程序中方法可用性的信息 (例如关键字 <code>public</code>、<code>static</code> 或 <code>prototype)</code>。</li> </ul> <h2 id="深入">深入</h2> <h3 id="JavaScript_中的签名">JavaScript 中的签名</h3> <p>{{Glossary("JavaScript")}} 是一种<em>松散类型 </em>或 <em>动态</em>语言。这意味着您不必提前声明变量的类型。处理程序时,将自动确定类型。JavaScript 中的签名仍然可以为您提供有关该方法的一些信息:</p> <pre class="brush: js notranslate">MyObject.prototype.myFunction(value)</pre> <ul> <li>该方法是安装在一个名为 <code>MyObject</code> 的 {{Glossary("object", "对象")}}上。</li> <li>该方法安装在 <code>MyObject</code> 的原型上 (因此它是一个{{Glossary("instance method", "实例方法")}}),而不是一个 {{Glossary("static method", "静态方法/类方法")}} 。</li> <li>该方法的名称是 <code>myFunction</code>。</li> <li>该方法接受一个叫 <code>value</code> 的参数, 且没有进一步定义。</li> </ul> <h3 id="Java_中的签名">Java 中的签名</h3> <p>在 {{Glossary("Java")}} 中,签名用于识别虚拟机代码级别的方法和类。你必须在代码中声明变量的类型才能运行 Java 代码。 Java 是<em>严格类型 </em>的,将在编译时检查所有参数是否正确。</p> <pre class="brush: java notranslate">public static void main(String[] args)</pre> <ul> <li><code>public</code> 关键字是一个访问修饰符,指示任何对象都可以调用此方法。</li> <li><code>static</code> 关键字指示此方法是一个类方法,而不是一个实例方法。</li> <li><code>void</code> 关键字表指示此方法没有返回值。</li> <li>该方法的名称为 <code>main</code>。</li> <li>该方法接受一个类型为 String Array 的参数。它的名是 <code>args</code>。</li> </ul> <h2 id="了解更多">了解更多</h2> <h3 id="基本知识"><code>基本知识</code></h3> <ul> <li><span>{{Interwiki("wikipedia", "Type signature#Java", "</span>Java内部类型签名<span>")}} </span>在维基百科上</li> </ul>