如何解决将函数分配给Javascript中的变量并使用声明进行调用
我来自Python背景,最近开始学习Javascript。我对函数如何分配给变量以及它们如何返回数据有些困惑。
请考虑以下对象:
DecimalFormat df = new DecimalFormat("#.####");
System.out.println(df.format(d));
const stats = {
max: 53.8,min: 34.9,std: 6.5
};
但是,我所指的教程使用一种怪异的方式来完成相同的事情,就像这样:
function half(stats) {
return (stats.min + stats.max) / 2.0;
};
console.log(half(stats));
我在这里不明白的是:
- 需要两个嵌套的返回值(功能相当简单,我不明白为什么需要两个返回值)
- 在
const half = (function() { return function half(stats) { return (stats.min + stats.max) / 2.0; }; })(); console.log(half(stats));
关键字之前开始并以较大的块结尾的括号 - 最有趣的是,
function
位于整个代码块的末尾,是否意味着该函数在声明后就立即被调用?
此外,当我尝试使用自己的Python经验以一种更简单的方式重写同一件事时,这似乎也可以解决问题。像这样:
();
任何人都可以向我解释该教程提供的代码中发生了什么吗?另外,也许您可以回答上面提出的3个问题。谢谢!
解决方法
请参阅。 https://www.w3schools.com/js/js_function_closures.asp(即将结束)
,您必须在此处了解几个概念,
函数声明
function half(stats) {
return (stats.min + stats.max) / 2.0;
};
console.log(half(stats));
函数表达式
const half = function(stats) {
return (stats.min + stats.max) / 2.0;
};
console.log(half(stats));
了解更多-https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/
立即调用的函数表达式
const half = (function() {
return function half(stats) {
return (stats.min + stats.max) / 2.0;
};
})(); // this will immediately execute without any invocation
console.log(half(stats));
关闭-https://www.tutorialsteacher.com/javascript/closure-in-javascript
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。