通过功能更改变量的快捷键

时间:2018-12-10 00:28:23

标签: javascript

我想知道是否存在一种通过返回某些函数来更改某些变量值的方法。这样做的捷径。

如果我想为变量添加一些值并对其进行更改,我们会这样做:

let numb = 5;
numb *= 2; // Returns 10

但是可以说我有一个函数可以返回其参数的两倍,如下所示:

function double(a) {
  return a * 2;
}

let numb = 5;
numb = double(numb); // Short hand of doing this line <----

2 个答案:

答案 0 :(得分:0)

您需要了解引用和值参数的工作方式。当您将数字或字符串传递给作为值参数的函数,并且随该函数更改参数值对传递的变量没有影响。如果参数是对对象的引用,则更改为然后,该对象上的属性将更改传入的变量。

let x = 5;
someFunc(x);

someFunc无法更改x,因为x的值5已传递到函数中,而不是对x的引用;

let x = { prop: 5 };
someFunc(x);

现在,如果someFunc的主体更改了x.prop,那么它也将其更改为由于传入对对象实例的引用而传入的变量x。

与分配变量相同。

let x = 5;
let y = x;

现在x和y均为5,但更改y = 6不会影响x。

let x = { prop: 5 };
let y = x;

现在y是对同一对象的引用,因此y.prop = 6也将更改x。

除了良好的编程原理和现代函数式编程概念外,所有这些都表明修改传递给函数的参数不是一种好习惯。

答案 1 :(得分:0)

您可以使用箭头键功能。保存一两行。

const double = a => a * 2;

let numb = 5;
numb = double(numb);

松开短手,双重功能看起来像

const double = (a) => {
  return a * 2
}

箭头键功能与普通功能几乎相同,但是它们使您可以更好地控制'this'关键字。