2014-09-12 84 views
-4

对不起,如果我不够清楚,因为我是新来的JavaScript。JavaScript的全局/本地变量和返回变量为HTML

让我解释一个例子。

例如,如果我有

*

(function() 
var foo; 
windows.foo = foo = (function()){ 
function foo (a,b){ 
this.colour = a.colour 
this.shape = b.shape 
} 
return foo; 
})(); 
}).call(this);* 

现在我的问题是

    关于范围
  1. ,当 “富” 是全局和局部。

2.how我会在HTML中显示foo的值。我不能使用document.getElementbyid();有没有其他的功能,我可以使用?????

+0

它应该是'getElementById',而不是'getelementbyid'。 – Afsa 2014-09-12 14:39:26

+0

'这里的第二个asdf是一个类,而第一个asdf是一个全局变量。 '/为什么括号“()”;'研究IIFE。 '//这意味着什么?它的重要性取决于'this'是什么以及它正在执行什么(你把它留下了)。问题二没有任何意义。 – 2014-09-12 14:39:37

+0

阅读http://stackoverflow.com/questions/16937022/iife-invocation-in-javascript。请注意,内部的IIFE是完全没有意义的。 – Bergi 2014-09-12 14:43:01

回答

0

通过

var asdf; 

声明在当前范围内的变量。

window.asdf = ... 

设置名为“window”的对象的属性“asdf”的值。

return asdf; 

返回函数 “ASDF” 只是申报;这被分配给你的(本地)变量“asdf”以及window.asdf。 括号调用本地定义的函数(导致前面提到的返回)。

.call(obj); 

调用函数并将函数内的this-pointer设置为“obj”。