pipe.transform(obj,arg1,arg2)是通过引用调用的,它在html中做了什么?

时间:2018-01-12 14:21:39

标签: angular

我对TypeScript / JS很新,我读到JS只要它们不是对象或数组就按值传递参数。

关于传递给管道的对象的引用,我有几个问题。假设我在我的Component Class中调用了pipe.transform(obj, size),并且管道实现了类似

的东西
obj.filter(item => item.getIndex() > size);
return obj;

这会将数组减少到一个较小的数组,现在让我说我用更大的参数再次调用它,管道将使用已经过滤的数组,因为JS通过引用调用类型数组的参数。使用初始数组始终调用.transform()函数需要做什么?

使用"array | pipe: size"的HTML文件中的管道是通过引用还是通过值调用的数组?

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

JS按值传递参数,只要它们不是对象或数组。

没有。 JS按值传递参数。无论什么类型。它不传递对象或数组,而是传递对象或数组。这些引用按值传递。

  

这会将阵列切割成更小的数组

没有。 filter()不会修改数组。它创建了数组的过滤副本。所以你的烟斗什么都不做。它返回未修改的数组。