var Alchemy = (function() {
function Alchemy(userConf) {
....
....
}
return Alchemy;
}) ();有人能解释一下炼金术变量所指的是什么吗,我的意思是指向一个炼金术命名的函数或一个未命名函数的实例,它有一个炼金术的函数def。
如果我们说new Alchemy(config);,我们会得到什么?
发布于 2015-07-24 18:32:05
这里混乱的部分原因是,本质上有两个“炼金术”变量--每个深度级闭包都有一个变量。
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的引用都会影响到该对象。
发布于 2015-07-24 18:30:48
var Alchemy将等于一个名为Alchemy的函数,该函数接受userConf参数。
发布于 2015-07-24 18:34:03
变量炼金术将是闭包中返回的炼金术函数。这样做的原因之一是将该函数中的任何其他变量隐藏在全局范围之外。
var Alchemy = (function() {
var someVar = '';
function Alchemy(userConf) {
....
....
}
return Alchemy;
}) ();在本例中,someVar在闭包之外是不可访问的。
https://stackoverflow.com/questions/31617336
复制相似问题