首页 > 解决方案 > 在控制台期间取消定义结果

问题描述

在我下面的 JS 代码中,我得到了单个控制台的 2 个答案,第一个是预期答案,另一个是undefined.

我不明白为什么会获得第二名undefined,谁能告诉我原因。

function sayHello2(name) {
    var text = 'Hello ' + name;
    var say = function() {
        console.log(text);
    }
    return say;
}
var say2 = new sayHello2('Bob');
console.log(say2());

标签: javascript

解决方案


你没有从内部函数返回任何东西。如果函数没有返回任何内容,则默认undefined返回。您必须text从内部函数返回:

return text;

function sayHello2(name) {
  var text = 'Hello ' + name;
  var say = function() 
  { 
    console.log(text); 
    return text;
  }
  return say;
}
var say2 = new sayHello2('Bob');
console.log(say2());


推荐阅读