静态函数声明和Java中普通函数声明之间的区别?

拉胡尔

可以使用多种方法在javascript中声明函数。一种方法是在内部声明一个类和一个静态函数,如下所示。

class className {
 static fucntionName() {
 }
}

声明的另一种方法是通过如下所示的传统javascript样式。

function functionName() {
}

我想知道使用这两种情况的优点/缺点。静态方法是否有任何特定的用例,为什么要声明一个类(我们知道,在javascript中,无需实例化该类即可访问静态函数)。为什么不在所有用例中都使用传统的函数声明方式(上例中的第二种情况)?

我想详细了解一下。

亚历山大·伊凡(Alexander Ivan)

一个static方法是从类本身可调用的,因为你已经知道了。

static可以从的实例调用方法,因此您基本上必须先创建一个对象,然后才能访问该方法。

例如,对于addNumbers(var a, var b)这确实return a+b是真的有必要浪费内存实例化类的对象只是为了添加这些2号?不,您只需要结果,这就是静态的全部要点。

使用第一种样式可以使您将特定类中的方法分组(例如名称空间之类的东西)。也许您可以定义MathString这样的,它们都有add方法但以不同的方式实现。调用add()本身是混乱的,但Math.add()String.add()没有。

export风格,对其他的方式,做了完全不同的事情。它允许您使用其他模块中的功能。

考虑一下:

first_module.js

function cube(var x) {
    return x * x * x;
}

second_module.js

import { cube } from 'first_module'; // <-- ERROR
alert( cube(3) ); // <-- Undefined function

但是,如果您以这种方式声明first_module:

export function cube(var x) {
    return x * x * x;
}

然后,second_module将正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP静态方法-“静态函数”和“公共静态函数”之间有什么区别?

在“ C”头文件中声明的静态函数

可以从静态函数访问main中声明的变量吗?

快速静态函数和单例类之间的区别

如何在Java类上的Kotlin中声明扩展静态函数?

Swift中静态函数和非静态函数有什么区别?

当非静态函数声明跟在静态函数声明之后会发生什么?

Javascript - 函数声明之间的区别

'this'和普通变量声明之间的区别

静态和非静态函数中“对象obj = new Object()”和“对象obj = null”之间的区别

对象文字中的函数声明和函数表达式之间的区别

在构造函数中声明和在构造函数外部声明之间的区别

Typescript接口声明中命名函数语法之间的区别

Swift中的静态函数和类函数有什么区别?

Swift中的静态函数和最终类函数有什么区别

lua中loadstring和普通函数定义之间的区别?

Java 中的 API 和函数/类声明

在Java中动态调用静态函数

打字稿:接口函数声明中=>和:的区别

声明静态对象和指向静态对象的指针之间的区别

声明函数静态与不将其包含在标头之间有什么区别?

在函数中声明静态const变量

C:如何声明返回非静态字符串的静态函数?

PHP 中的多态静态和非静态函数

C中的静态函数

使用构造函数分配属性值和类声明中的属性分配之间有什么区别?

在Lua中,使用和不使用“ local”关键字声明的局部函数之间有区别吗?

二维数组的静态和动态声明之间的区别

PHP中的公共静态函数和静态公共函数有什么区别吗?