Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用箭头函数设置变量_Javascript_Angularjs_Ecmascript 6_Arrow Functions - Fatal编程技术网

Javascript 使用箭头函数设置变量

Javascript 使用箭头函数设置变量,javascript,angularjs,ecmascript-6,arrow-functions,Javascript,Angularjs,Ecmascript 6,Arrow Functions,超级快速的问题,因为我已经习惯了箭头函数。我知道它们隐式返回,只要是表达式,我们就可以隐式返回。但是,例如,我可以减少以下内容吗 $scope.setEdit=()=>{$scope.edit=true;} 到 $scope.setEdit=()=>$scope.edit=true 没有遇到任何不想要的行为?我不确定简单地分配变量时箭头函数的行为。我只在我通常会有返回语句的地方使用,从来没有使用过简单赋值 这只是一个例子。谢谢 赋值只是一个表达式,就像任何其他表达式一样: const a =

超级快速的问题,因为我已经习惯了箭头函数。我知道它们隐式返回,只要是表达式,我们就可以隐式返回。但是,例如,我可以减少以下内容吗
$scope.setEdit=()=>{$scope.edit=true;}
$scope.setEdit=()=>$scope.edit=true
没有遇到任何不想要的行为?我不确定简单地分配变量时箭头函数的行为。我只在我通常会有返回语句的地方使用,从来没有使用过简单赋值


这只是一个例子。谢谢

赋值只是一个表达式,就像任何其他表达式一样:

  const a = () => b = 1;

  console.log(
    c = 1,
    a()
  );
没有遇到任何不想要的行为


这取决于调用方是否希望返回某些内容。如果没有,返回的结果将不会有任何结果,那么它没有任何区别。

赋值只是一个表达式,就像任何其他表达式一样:

  const a = () => b = 1;

  console.log(
    c = 1,
    a()
  );
没有遇到任何不想要的行为


这取决于调用方是否希望返回某些内容。如果不是,返回的结果将不会有任何结果,那么它没有任何区别。

这与箭头函数没有什么关系,而是与表达式求值有关。表达式的计算结果(可能有副作用)将是返回值

此箭头表达式函数:

() => a = b
执行并返回与以下内容相同的操作:

() => {
    return a = b;
}
这是一个有副作用的函数:
a
获取一个值。赋值可以在表达式中发生并返回赋值。因此,它相当于:

() => {
    a = b;
    return b;
}

这与箭头函数关系不大,但与表达式计算有关。表达式的计算结果(可能有副作用)将是返回值

此箭头表达式函数:

() => a = b
执行并返回与以下内容相同的操作:

() => {
    return a = b;
}
这是一个有副作用的函数:
a
获取一个值。赋值可以在表达式中发生并返回赋值。因此,它相当于:

() => {
    a = b;
    return b;
}

我认为你对箭头函数的工作原理理解有误。它们仅在使用速记版本时隐式返回

这就是我的意思-这三个函数在功能上是相同的,它们都返回字符串
'hello'

函数a(){return'hello'}
常量b=()=>{return'hello'}//箭头Fn/w大括号需要返回语句才能返回任何内容
常量c=()=>“你好”//不带大括号的速记箭头Fn返回箭头指向的任何内容
下面是一个演示,使用了所有不同的函数样式

//无返回值的常规函数
变量a=‘bar’;
常量myFunc1=function(){a='foo';}
log(myFunc1(),a);
//带返回值的正则函数
a=‘bar’;
const myFunc2=函数(){return a='foo';}
log(myFunc2(),a);
//带返回值的arrow函数
a=‘bar’;
常量myFunc3=()=>{return b='foo';}
log(myFunc3(),a);
//无返回值的arrow函数
a=‘bar’;
常量myFunc4=()=>{b='foo';}
log(myFunc4(),a);
//使用速记的arrow函数,它有一个隐式返回值
a=‘bar’;
常量myFunc5=()=>b='foo';

log(myFunc5(),a)我认为您对箭头函数的工作原理理解有误。它们仅在使用速记版本时隐式返回

这就是我的意思-这三个函数在功能上是相同的,它们都返回字符串
'hello'

函数a(){return'hello'}
常量b=()=>{return'hello'}//箭头Fn/w大括号需要返回语句才能返回任何内容
常量c=()=>“你好”//不带大括号的速记箭头Fn返回箭头指向的任何内容
下面是一个演示,使用了所有不同的函数样式

//无返回值的常规函数
变量a=‘bar’;
常量myFunc1=function(){a='foo';}
log(myFunc1(),a);
//带返回值的正则函数
a=‘bar’;
const myFunc2=函数(){return a='foo';}
log(myFunc2(),a);
//带返回值的arrow函数
a=‘bar’;
常量myFunc3=()=>{return b='foo';}
log(myFunc3(),a);
//无返回值的arrow函数
a=‘bar’;
常量myFunc4=()=>{b='foo';}
log(myFunc4(),a);
//使用速记的arrow函数,它有一个隐式返回值
a=‘bar’;
常量myFunc5=()=>b='foo';

log(myFunc5(),a)是否有代码使用返回值?这与箭头函数关系不大,但与表达式计算有关。表达式的计算结果(可能有副作用)将是返回值。因此,如果你知道表达式a=b的作用和返回结果,那么你就有了答案。“我知道它们隐式返回”——不,它们没有。只有当你省略花括号时,他们才会这样做
myFunc=()=>a=b+c}
将返回
undefined
,但
myFunc=()=>a=b+c
将返回
a
的新值。谢谢大家的回答。我现在很清楚了。有没有代码使用返回值?这与箭头函数没有什么关系,但与表达式求值有关。表达式的计算结果(可能有副作用)将是返回值。因此,如果你知道表达式a=b的作用和返回结果,那么你就有了答案。“我知道它们隐式返回”——不,它们没有。只有当你省略花括号时,他们才会这样做
myFunc=()=>a=b+c}
将返回
undefined
,但
myFunc=()=>a=b+c
将返回
a
的新值。谢谢大家的回答。我现在明白了。谢谢你的澄清。虽然从我的措辞无法理解我的问题,但我确实意识到了这一点。我应该把“使用速记语法时”记在心里,重新阅读你的问题,我会理解得更好。听起来你想和我们谈谈