可以使用多种方法在javascript中声明函数。一种方法是在内部声明一个类和一个静态函数,如下所示。
class className {
static fucntionName() {
}
}
声明的另一种方法是通过如下所示的传统javascript样式。
function functionName() {
}
我想知道使用这两种情况的优点/缺点。静态方法是否有任何特定的用例,为什么要声明一个类(我们知道,在javascript中,无需实例化该类即可访问静态函数)。为什么不在所有用例中都使用传统的函数声明方式(上例中的第二种情况)?
我想详细了解一下。
一个static
方法是从类本身可调用的,因为你已经知道了。
static
可以从类的实例中调用非方法,因此您基本上必须先创建一个对象,然后才能访问该方法。
例如,对于addNumbers(var a, var b)
这确实return a+b
是真的有必要浪费内存实例化类的对象只是为了添加这些2号?不,您只需要结果,这就是静态的全部要点。
使用第一种样式可以使您将特定类中的方法分组(例如名称空间之类的东西)。也许您可以定义Math
和String
这样的类,它们都有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] 删除。
我来说两句