javascript - 我在浏览器控制台中显示数据时遇到了一些问题
问题描述
我想使用此代码在浏览器的控制台中显示“widndow.console.log ...”部分的信息:“path 1 is A/B/C”,但我认为我的第一个或第二个函数有问题,因为在控制台中我得到:“路径 1 未定义”......有人可以帮忙吗?
var makePath = function(b) {
var x;
return function(path1) {
x=path1+b;
}
}
var main = function() {
var path1 = makePath ("/");
path1("A");
path1("B");
path1("C");
window.console.log("path 1 is" + path1());
}
解决方案
每次调用 path1 时都会覆盖 x,因此只会显示传递的最后一个字母。由于您在没有传递字母的情况下调用 path1(),因此您得到undefined/
我认为您可能正在尝试执行以下代码之类的操作,它将您传递的字母添加到先前的结果中,而不是覆盖它。
var makePath = function( path_header ) {
var path = [];
return function( path_chunk ) {
if ( path_chunk ) path.push( path_chunk );
return path.join( '/' );
}
};
var main = function() {
var path1 = makePath ("/");
path1("A");
path1("B");
path1("C");
window.console.log("path 1 is " + path1());
};
main();