javascript - 在控制台期间取消定义结果
问题描述
在我下面的 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());
解决方案
你没有从内部函数返回任何东西。如果函数没有返回任何内容,则默认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());
推荐阅读
- ruby-on-rails - Rails 6、React、Rack-Cors
- graph-databases - 如何使用 python-arango 在 arangodb 中插入带有变量的数据
- python - 使用 Beautiful Soup 从 HTML 标签内部提取数据
- php - Laravel 翻译
- maven - 使用 Eclipse(Spring Tool Suite)和 Maven 创建 Spring MVC 动态 Web 项目时出现 404 错误;控制台中没有错误消息
- vaadin - Vaadin 14 中图表/图表/图形的免费组件
- reactjs - 必须单击两次才能设置状态,然后调用函数
- arrays - 在nodeJS中一起附加数组
- python - 将数据框中的所有数字除以一个常数
- django - 引用其他应用程序的 Django ManyToManyField 返回“app.model.None”