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”在这个上下文中做什么的问题?