首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个javascript函数声明是什么意思?

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

Stack Overflow用户
提问于 2015-07-24 18:25:39
回答 3查看 84关注 0票数 2
代码语言:javascript
复制
var Alchemy = (function() {
    function Alchemy(userConf) {
      ....
      ....
    }
    return Alchemy;
}) ();

有人能解释一下炼金术变量所指的是什么吗,我的意思是指向一个炼金术命名的函数或一个未命名函数的实例,它有一个炼金术的函数def。

如果我们说new Alchemy(config);,我们会得到什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-24 18:32:05

这里混乱的部分原因是,本质上有两个“炼金术”变量--每个深度级闭包都有一个变量。

代码语言:javascript
复制
var x = 3;
(function() {
  var x;
  console.log(x) // This will be null/undefined - because it's a different X
}());

但你的第一个理论是正确的-这个块的目的是创建一个命名的函数,炼金术。我想,在.....中,它会做其他的事情来初始化这个函数变量,比如向它的原型添加一些东西。

如果您调用new Alchemy(config),那么config将作为userConf传入。new Alchemy调用的结果将是一个新的Alchemy类型的对象,任何对....区域内关键字this的引用都会影响到该对象。

票数 2
EN

Stack Overflow用户

发布于 2015-07-24 18:30:48

var Alchemy将等于一个名为Alchemy的函数,该函数接受userConf参数。

票数 0
EN

Stack Overflow用户

发布于 2015-07-24 18:34:03

变量炼金术将是闭包中返回的炼金术函数。这样做的原因之一是将该函数中的任何其他变量隐藏在全局范围之外。

代码语言:javascript
复制
var Alchemy = (function() {
    var someVar = '';

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

在本例中,someVar在闭包之外是不可访问的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31617336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档