我想使用此代码在浏览器的控制台中显示“ widndow.console.log ...”部分的信息:“路径1是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());
}
答案 0 :(得分:2)
您每次调用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();