程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了没有 var、let 或 const 的 JavaScript 内部 lambda 函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决没有 var、let 或 const 的 JavaScript 内部 lambda 函数?

开发过程中遇到没有 var、let 或 const 的 JavaScript 内部 lambda 函数的问题如何解决?下面主要结合日常开发的经验,给出你关于没有 var、let 或 const 的 JavaScript 内部 lambda 函数的解决方法建议,希望对你解决没有 var、let 或 const 的 JavaScript 内部 lambda 函数有所启发或帮助;

在下面的 React-Application 中,我使用 Js-Feature 在函数中声明一个函数并在某个事件上调用它:

export default function App() {
  OnClick = (input) => { //Why is no var/let needed
    //do something...
  }

  return (<button onClick={this.OnClick}/>); //and it is called like this
}
@H_403_4@

我的问题是:

  • “功能”/“符号”是如何命名的? - 不使用 var/let/const 似乎很奇怪
  • 它是在哪个 ES 版本中引入的?
  • 它是否仅适用于 Lambda 函数?

解决方法

“功能”是如何命名的? - 不使用 var/let/const 似乎很累

我称之为The Horror of Implciit GlobalsOnClick 被创建为全局变量,而不是本地变量。我认为它没有正式名称。一个不那么固执的人可能是“隐式全局变量创建”。 :-)

它是在哪个 ES 版本中引入的?

在 ECMAScript 版本 1 之前。我认为它是 1995 年 JavaScript 的第一个版本。

它是否只适用于 Lambda 函数?

不,您可以使用任何值执行此操作。 OnClick = 42 也可以“工作”。

但不要。同样,它创建了一个全局的,而不是局部的。相反,声明您的变量。

使用 const 作为示例(如果您愿意,也可以使用 let)。我还建议使用 JavaScript 模块(“ESM”或“ECMAScript”模块),因为模块中的代码处于严格模式并且分配给未声明的标识符是它始终应该处于严格模式的错误。如果您不想使用 JavaScript 模块,请将 "use Strict"; 添加到文件顶部以将它们置于严格模式。

这是它创建全局的事实的演示:

function example(value) {
    OnClick = () => {
        console.log(value);
    };
}

example(42);
OnClick(); // Logs 42
console.log(typeof window.onClick); // "function"

大佬总结

以上是大佬教程为你收集整理的没有 var、let 或 const 的 JavaScript 内部 lambda 函数全部内容,希望文章能够帮你解决没有 var、let 或 const 的 JavaScript 内部 lambda 函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。