Javascript 我如何理解c({x:10}).x?

Javascript 我如何理解c({x:10}).x?,javascript,Javascript,完整的代码是 var b = 10, c = ( 20, function(x) {return x + 100}, function() {return arguments[0]} ); a = b + c({x:10}).x // => 20 我如何理解c{x:10}.x…它是这样的: 任务: c = ( 20, function(x) {retu

完整的代码是

    var b = 10,
    c = (
            20,
            function(x) {return x + 100},
            function() {return arguments[0]}
        );
a = b + c({x:10}).x  // => 20
我如何理解c{x:10}.x…

它是这样的:

任务:

c = (
        20,
        function(x) {return x + 100},
        function() {return arguments[0]}
    );
将括号中的最后一个表达式指定给c。计算前两个表达式20和函数x{return x+100},但不在赋值中使用。这是一个正在运行的示例:任何由逗号分隔的表达式序列都具有最后一个表达式的值

在这一点上,c是函数{返回参数[0]}

然后,用参数{x:10}调用c,并返回对象{x:10}。然后.x提取x属性,该属性的值为10。这被添加到b中,b的值也为10,从而将值20分配给a

简单

事情是这样的:

任务:

c = (
        20,
        function(x) {return x + 100},
        function() {return arguments[0]}
    );
将括号中的最后一个表达式指定给c。计算前两个表达式20和函数x{return x+100},但不在赋值中使用。这是一个正在运行的示例:任何由逗号分隔的表达式序列都具有最后一个表达式的值

在这一点上,c是函数{返回参数[0]}

然后,用参数{x:10}调用c,并返回对象{x:10}。然后.x提取x属性,该属性的值为10。这被添加到b中,b的值也为10,从而将值20分配给a


简单

首先,让我们重写代码,使其更易于阅读

构造x、y、z计算为最后一项z,因此:

现在,c函数只返回第一个参数,这在这里是没有意义的,所以让我们删除它:

var b = 10;
a = b + ({ x: 10 }).x  // => 20
对象文字{x:10}在这里也没用,因为我们只是得到它的x属性,然后丢弃它,所以:

var b = 10;
a = b + 10  // => 20

现在有意义了吗?

首先,让我们重写代码,以便更容易阅读

构造x、y、z计算为最后一项z,因此:

现在,c函数只返回第一个参数,这在这里是没有意义的,所以让我们删除它:

var b = 10;
a = b + ({ x: 10 }).x  // => 20
对象文字{x:10}在这里也没用,因为我们只是得到它的x属性,然后丢弃它,所以:

var b = 10;
a = b + 10  // => 20
现在有意义了吗?

在javascript中,a,b,c返回c,所以c=function{return arguments[0];}

c{x:10}返回{x:10}

c{x:10}.x返回10

所以b+c在javascript中返回20,a,b,c返回c,所以c=function{return arguments[0];}

c{x:10}返回{x:10}

c{x:10}.x返回10


那么b+c返回20

你不明白什么?你可以在stackoverflow上发布一个题为“c{x:10}.x”在这个上下文中做什么?你不明白什么?你可以在stackoverflow上发布一个题为“c{x:10}.x”在这个上下文中做什么的问题?