首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试理解一些js代码中的执行顺序。

尝试理解一些js代码中的执行顺序。
EN

Stack Overflow用户
提问于 2013-07-04 15:27:38
回答 2查看 40关注 0票数 0
代码语言:javascript
复制
<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->控制台中,它显示:["show-hide"]

问题:

当脚本转到下面这一行时:DYN_WEB.Util,尚未到达var links,为什么console.log(arguments)仍然可以输出["show-hide"],而不是undefined

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 15:35:15

如果您想了解执行流程,可以添加一些额外的行。在links行上调用getResult函数。试试this

代码语言: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 || {});
console.log("before links");
var links = DYN_WEB.Util.getResult('show-hide');
console.log("after links");

控制台输出将为:

代码语言:javascript
复制
before links
["show-hide"]
after links 
票数 1
EN

Stack Overflow用户

发布于 2013-07-04 15:35:32

DYN_WEB.Util是一个函数,不会自己执行。因此,在它无法到达变量链接的点上,您是错误的。

首先,它将到达调用DYN_WEB.Util函数的var links,并传递您正在使用的参数。

因此,调用流程将首先调用var links,在此调用上面初始化的DYN_WEB.Util函数,然后执行console.log

然后输出show-hide。

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

https://stackoverflow.com/questions/17464248

复制
相关文章

相似问题

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