为什么控制台输出未定义?

时间:2014-09-25 10:59:08

标签: javascript console.log

我的代码如下:

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来自哪里?

4 个答案:

答案 0 :(得分:1)

load函数不返回任何内容,即返回undefined。并在此处记录undefined

console.log(p1.load());

你可能只想要

p1.load();

答案 1 :(得分:0)

console.log的返回值始终未定义。它打印到控制台,但它实际上并没有返回任何东西。

var tmp = 5;
console.log(tmp); // prints 5, returns undefined.
tmp; // Returns 5         

另外,为什么要打印出已打印出所需信息的功能的结果呢?

答案 2 :(得分:0)

嗨,你不需要对那个未定义的太过紧张。您的代码是正确的,它可以在任何js文件中正常工作。

当你创建人类的实例时,那个未定义。

答案 3 :(得分:0)

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