【问题标题】:Why the console output undefined? [duplicate]为什么控制台输出未定义? [复制]
【发布时间】:2014-11-20 03:02:17
【问题描述】:
我有如下代码:
function Person() {
this.name = '123';
this.age = 123;
}
Person.prototype.load = function() {
console.log(this.name + " test ");
}
var p1 = new Person();
console.log(p1.load());
控制台输出两条消息。一个是123 test,一个是undefined,不知道undefined是哪里来的?
【问题讨论】:
标签:
javascript
console.log
【解决方案1】:
http://jsfiddle.net/5azsp5r9/
来吧,先生:
function Person() {
this.name = '123';
this.age = 123;
}
Person.prototype.load = function() {
//Load started for John Doe
console.log("Load started for "+ this.name );
return "Load ended";
}
var p1 = new Person();
p1.name = "John Doe";
//Load ended
console.log(p1.load());;
【解决方案2】:
您好,您不需要对未定义的内容过于紧张。您的代码是正确的,它可以在任何 js 文件中正常工作。
当你创建 person 类的实例时,那个 undefined 就出现了。
【解决方案3】:
console.log 的返回值始终未定义。它打印到控制台,但它本身实际上并没有返回任何内容。
var tmp = 5;
console.log(tmp); // prints 5, returns undefined.
tmp; // Returns 5
另外你为什么要打印一个已经打印出你想要的信息的函数的结果?
【解决方案4】:
load 函数不返回任何内容,即返回 undefined。你在这里记录这个undefined:
console.log(p1.load());
你可能只是想要
p1.load();