javascript - 这个javascript函数声明是什么意思

标签 javascript

var Alchemy = (function() {
    function Alchemy(userConf) {
      ....
      ....
    }
    return Alchemy;
}) ();

可以解释一下 Alchemy 变量指向什么吗,我的意思是指向一个 Alchemy 命名函数或一个未命名函数的实例,它具有 Alchemy 的函数 def

如果我们说 new Alchemy(config);

我们会得到什么

最佳答案

这里的部分混淆是本质上有两个“Alchemy”变量 - 一个对应闭包的每个深度级别。

var x = 3;
(function() {
  var x;
  console.log(x) // This will be null/undefined - because it's a different X
}());

但是您的第一个理论是正确的 - 这个 block 的目的是创建一个命名函数,Alchemy。我猜想在 ..... 中它会做其他事情来初始化这个函数变量,比如向它的原型(prototype)添加东西。

如果您调用 new Alchemy(config),则 config 将作为 userConf 传入。 new Alchemy 调用的结果将是一个类型为 Alchemy 的新对象,以及对 中关键字 this 的任何引用。 ... 区域将影响所述对象。

关于javascript - 这个javascript函数声明是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617336/

相关文章:

javascript - 今天有什么理由不使用 <script defer> 吗?

javascript - onFocus 干扰 onClick

javascript - 替换 Javascript 中的所有字符,包括空格

javascript - 在类更改时使用 css 制作动画

javascript - 使用 jQuery 处理 SharePoint 中多选选择字段的更改

javascript - Chrome 的 JavaScript 控制台在评估对象方面是否懒惰?

javascript - Puppeteer 有什么方法可以从 Chrome 网络选项卡获取准确的数据吗?

javascript - 根据 DOM 中的位置对包含 DOM 元素的数组进行排序

javascript - 使网页内容适合固定大小的 iframe

javascript - 如何检查字符串是否为回文 JavaScript [关闭!]