我在浏览器的控制台中显示数据时遇到一些问题

时间:2018-10-24 16:07:43

标签: javascript

我想使用此代码在浏览器的控制台中显示“ 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());
}

1 个答案:

答案 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();