<script type="text/javascript">
var DYN_WEB = DYN_WEB || {};
DYN_WEB.Util = (function( Ut ) {
Ut.getResult = function ( cl, tag, el ) {
console.log(arguments)
}
return Ut;
})( DYN_WEB.Util || {} );
var links = DYN_WEB.Util.getResult('show-hide');
</script>
在chrome-&gt;控制台中,它显示:["show-hide"]
问题:
当脚本转到此行时:DYN_WEB.Util
,尚未到达var links
,为什么console.log(arguments)
仍然可以输出["show-hide"]
,而不是undefined
?
答案 0 :(得分:1)
如果您想了解执行流程,可以添加一些额外的行。在getResult
行上调用links
函数。试试this:
var DYN_WEB = DYN_WEB || {};
DYN_WEB.Util = (function (Ut) {
Ut.getResult = function (cl, tag, el) {
console.log(arguments)
}
return Ut;
})(DYN_WEB.Util || {});
console.log("before links");
var links = DYN_WEB.Util.getResult('show-hide');
console.log("after links");
控制台输出将是:
before links
["show-hide"]
after links
答案 1 :(得分:0)
DYN_WEB.Util
是一个函数,不会自行执行。
所以你错了,因为它无法到达var链接。
首先,它会从var links
调用DYN_WEB.Util
函数到达它,它将传递您正在使用的参数。
因此,调用流程首先会调用var links
,调用DYN_WEB.Util
函数进行初始化,然后执行console.log
。
然后输出show-hide。