有关不同内置数组方法Javascript

时间:2019-07-06 02:25:16

标签: javascript arrays methods terminology

在使用Javascript中可用于数组的内置方法时,某些方法将直接作用于调用数组。 例如,myArray.sort()将按字母或数字的升序对myArray进行排序。

myArray.sort();
// sort() acts directly on myArray, changing it in its place thereafter
// ... also myArray.reverse() amongst others.

虽然slice()之类的其他方法需要某些东西(变量或其他输出)才能将其值返回到...

var need_a_new_array = myArray.slice(10, 21);
// a new placeholder is needed for the results of slice... if not using 
// the results immediately (i.e. passing to another function or 
// outputting the results)

我想知道这些方法及其区别的正确术语是什么。我在这里以数组为例,但是我确定 一般而言,对象也是如此。 感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

正确的术语是 mutator accessor

mutator method 变异(更改)被调用的对象,而访问器访问(返回返回)被调用的对象的值上。

通过查看Array.prototype的方法列表,可以看到两种类型的示例。请注意,它们分为几类,其中两类是Mutator methods“这些方法修改数组” )和Accessor methods“这些方法不修改数组并返回该数组的某种表示形式。“

不能在immutable objects上调用mutators。

另请参见有关软件工程SE的以下相关问题:What is the term used to describe a function/method that modifies the object it's called on?

答案 1 :(得分:0)

您要查找的术语是“不可变”和“可变”。 Array.prototype.sort是一种可变方法,它可以“变异”(更改)原始数组,其中Array.prototype.slice是不可变的,因为它会创建一个带有结果的新数组,并使原始数组保持不变。