gpt4 book ai didi

javascript - 从其他类访问静态方法是标准的吗?

转载 作者:行者123 更新时间:2023-11-28 05:00:59 25 4
gpt4 key购买 nike

我是 TypeScript 和面向对象编程的新手,我有一些函数应该相互等待(JavaScript 中的 Promise),并且 Promise 相互依赖,例如:

在主脚本文件中,我有主类,我导入了其他文件并在其中进行了分类。 (我的意思是使用 import {bla-bla-class} from "bla-bla" )

我有一个 promise 用于加载(根据页面和互联网速度可能需要几毫秒或几秒......)使用addEventListenerconfigSetter 方法等待该方法(load)来设置配置(我需要完全加载页面来设置配置),然后我需要告诉 main 类中的 ready() 方法页面已加载且配置设置正确,因此我在 main 类中为 ready() 方法添加了另一个 promise 来等待 configSetter() 方法(因为配置 setter 本身需要等待 load 方法,ready() 也依赖于它,所以我需要等待),当我编译和捆绑文件时,文件比我预期的要重,而且由于我使用了不同的 promise,我的 TypeScript 文件也更难以理解promises/p>

我想也许我可以导出 main 类,并使其 ready() 方法 static,这样我就可以访问我的主类很容易从另一个类中调用 ready() 方法,但现在我不确定,这是否是人们在面向对象编程中所做的事情?

可以在其他类和方法中使用主类的方法(即使是静态的)吗? (特别是当它们不是主类而只是一些有用的方法时......它们应该能够调用 main 类方法吗?)

最佳答案

静态函数的主要用途是提供不在特定实例上运行的实用函数(例如,Math 类)。您不需要Math 实例来执行数学函数,因为这既不必要地使用内存,又有些不合逻辑)。

static 的另一个用途是在同一类的多个实例之间共享公共(public)资源。我将引用 Angular >= 2.x 开发中的一个示例:

假设您有一项用于登录和注销用户的服务。尽管登录,但尝试将用户配置文件保留为非静态字段将导致在某些用例中用户配置文件出现意外的未定义值。这是因为用户配置文件不会在实例之间共享。使其静态可确保该字段对于该类的每个实例都是一个且相同。

对于一般的 OOP 来说也是如此。

希望有帮助! :)

关于javascript - 从其他类访问静态方法是标准的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42137138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com