提问人:user1765369 提问时间:3/27/2018 最后编辑:Carcigenicateuser1765369 更新时间:3/27/2018 访问量:164
Javascript函数未定义,可能存在命名空间问题?[复制]
Javascript function not defined, possible namespace issue? [duplicate]
问:
我不明白为什么。我怀疑这是一个命名空间问题,但该函数及其调用是在同一个文档就绪函数中定义的。
当我尝试在控制台中调用该函数时,我得到 calcPCs 未定义
$(document).ready(function() {
function calcPCs(id) {
var si = $(id).find(".Screened-In").text();
var so = $(id).find(".Screened-Out").text();
var ref = $(id).find(".Referred").text();
var ret = $(id).find(".Retained").text();
$(id).find(".Screened-In").append(' (' + Math.floor((+si / (+si + +so)) * 100) + '%)');
$(id).find(".Screened-Out").append(' (' + Math.floor((+so / (+si + +so)) * 100) + '%)');
$(id).find(".Referred").append(' (' + Math.floor((+ref / (+ref + +ret)) * 100) + '%)');
$(id).find(".Retained").append(' (' + Math.floor((+ret / (+ref + +ret)) * 100) + '%)');
};
calcPCs("#northwest");
calcPCs("#northeast");
calcPCs("#west");
calcPCs("#east");
calcPCs("#central");
calcPCs("#gtr");
});
答:
1赞
Máté Safranka
3/27/2018
#1
您无法从控制台进行呼叫。在控制台中键入的任何代码都在全局命名空间中执行,但在传递给的匿名函数中定义,因此计为该函数的局部变量。局部变量不能从函数体外部使用。calcPCs
calcPCs
.ready()
评论
2赞
Taplar
3/27/2018
附加说明。您可以从控制台执行该方法,前提是您在该方法可用的作用域内设置了一个断点。命中断点后,在断点暂停时,可以从控制台运行该方法。
评论
calcPCs