首页 > 解决方案 > 我在浏览器控制台中显示数据时遇到了一些问题

问题描述

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

标签: javascript

解决方案


每次调用 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();


推荐阅读