【发布时间】:2019-04-10 20:57:23
【问题描述】:
在 javascript 中,如果我不使用类,我可以这样做:
const Module = (function(){
const myArray = [];
const myObject = {};
return { //this is my interfaces
myArray,
myObject,
myMethod1,
myMethod2,
myMethod3,
myMethod4,
myMethod99,
}
function myMethod1(){}
function myMethod2(){}
function myMethod3(){}
function myMethod4(){}
function myMethod99(){}
})
这为我提供了某种结构,让我可以在顶部列出所有公开可用的属性和方法,这样更容易在模块之间导航并查看模块中有哪些可用的东西,也更容易导航到使用 Visual Studio Code 等 IDE 中的 Intellisense 功能时,只需转到模块,单击您要转到的方法,然后按 F12,它将带您到该功能。
现在与 javascript 中的类不同:
class Module{
constructor(){}
myMethod1(){}
myMethod2(){}
myMethod3(){}
myMethod4(){}
myMethod99(){}
}
在这种情况下,我无法将接口和实现分开,从而难以在代码中导航。 Javascript有没有可能处理这种情况?
【问题讨论】:
-
任何体面的 IDE 都足够智能,可以跳转到类中的方法定义,甚至可能列出所有类及其方法供您快速访问。这不是关于 Javascript 的问题,而是关于 IDE 的问题。
-
我拒绝了这不是关于 javascript 的问题的说法。智能 IDE 确实可以做到这一点,但在我的环境中,我们无法强制人们使用什么,因为他们有自己的偏好。有些人甚至仍然使用 sublime,在某些情况下,当有人需要检查代码而无法直接从 git 访问 pc 时,我们需要有一种结构化代码的方法,以便我们可以获得尽可能多的信息,即使使用相当于记事本
-
请仔细阅读这个问题,这里的重点是问我是否可以将所有重要的属性和接口放在代码之上,这样即使没有IDE,我们也可以看到这个文件中存在的内容
-
我想你已经证明你可以......!?
-
如果我们不使用class,答案是肯定的,但是我们在使用react和react native的时候出现了一个新问题,而如果我们不使用class,我们可以这样做,现在我们面临着 react 和 react native,它在任何地方都使用类,我们不确定我们是否可以对类做同样的事情,或者任何让它尽可能相似的方法。我不会直接为反应主题提出这个问题,因为这将是一般的 javascript 类行为
标签: javascript oop