javascript - 解释一下下面的 JavaScript 语句?

标签 javascript

var ninja = (function(){
    function Ninja(){};
    return new Ninja();
})();

为什么上面的函数封装在括号里,为什么会有();最后?

我认为这是一个构造函数,因为 ();最后,但是为什么对象要用括号括起来呢?

最佳答案

此代码相当于:

function Ninja() {
    // nothing here
}

var ninja = new Ninja();

尽管在您列出的代码中,函数/对象 Ninja 不是全局范围。

代码 (function() {...})(); 基本上表示“获取此处包含的任何函数并立即执行它”。因此它创建了一个匿名函数并随后调用它。

关于javascript - 解释一下下面的 JavaScript 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154782/

相关文章:

javascript - 具有可变内容的 jQuery 选择器

javascript - Handlebars : More than one model inside template

javascript - Ajax 调用失败,但仅在特定的手机运营商上

javascript - JQuery Mobile Listview 滑动菜单

php - 将 anchor 标记与表单的操作属性结合使用

javascript - 将每个内部的模型传递给 escape_javascript 以呈现表单

javascript - Google Maps API - 街景启用时触发事件

javascript - 如何获取日期选择器中选定的年份?

javascript - 使用 underscore.js 将两个(或更多)数组映射为一个数组

javascript - knockout 组件(不)绑定(bind)新内容