返回数据的Typescript函数

时间:2018-04-16 13:56:00

标签: typescript

一个普遍好奇的问题。假设我们有一个返回对象数据的Typescript函数。

public abc(): data {
   let data: object = { ... }
   ...
   ...
   return data;
}

我们用

调用该函数
abc();

但是函数abc()返回data。是否有内存泄漏或其他因为没有变量来保存返回的数据,如let saveThisData = abc();

2 个答案:

答案 0 :(得分:2)

没有内存泄漏。由于未引用abc()的返回值,因此将进行垃圾回收。

TypeScript不会从JavaScript更改此行为的任何内容,因为TypeScript的返回类型仅描述为编译时类型检查器返回的内容。

答案 1 :(得分:1)

没有内存泄漏。下一次垃圾收集器执行时,它将看到没有当前引用(全局范围中的变量),您可以从中获得定义为data的内容,因此将丢弃该对象。 / p>

事实上,如果你将它分配给常数:

const data = abc();
如果您在块或函数中执行此操作,

将是相同的。一旦该块或函数超出范围,就不会引用该对象,因此,它将再次被处理。

当然,如果您在全局范围内执行该语句,那么data将成为根引用,因此在程序完成之前不会释放该对象(当发生这种情况时,取决于上下文执行 - 节点,浏览器......)