首页 > web前端 > js教程 > 正文

JavaScript 中的'(function () { }) ()”和'(function () { })()”在功能上相等吗?

Mary-Kate Olsen
发布: 2024-10-30 08:53:02
原创
854 人浏览过

Are

“(function () { }) ()”和“(function () { })()”在 JavaScript 中功能相等吗?

在 JavaScript 中,以下两个代码块似乎产生相同的结果:

(function () {
    bar = 'bar';
    alert('foo');
})();

alert(bar);
登录后复制
(function () {
    bar = 'bar';
    alert('foo');
}());

alert(bar);
登录后复制

两个代码块都显示消息“foo”,后跟“bar”。不过,这两种代码结构有功能上的区别吗?

回答

代码块是一样的

一般情况下,“(function ( ) { }) ()" 和 "(function () { })()" 在 JavaScript 中功能相同。它们都调用匿名函数并立即执行它。该函数初始化 bar 变量并警告消息“foo”。

与其他语法的差异

但是,当向代码中添加其他语法时,可能会出现差异。

情况 1:函数构造函数语法

考虑以下代码:

new (function () {
    this.prop = 4;
}) ().prop;
登录后复制

此代码创建函数类的新实例并检索新实例的 prop 属性。它返回值 4。

情况 2:命名空间语法

考虑以下代码:

new ( function() {
    return { Class: function() { } }; 
}() ).Class;
登录后复制

此代码调用 Class 属性上的 new 运算符。由于嵌套的括号,该函数被正常调用,其返回值用于创建一个新实例。

以上是JavaScript 中的'(function () { }) ()”和'(function () { })()”在功能上相等吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!