2014-09-25 3 views
2

У меня есть код следующий так:Почему консольный вывод не определен?

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?

+0

когда вы вызываете нагрузки() не возвращает никакого значения – Kenny

ответ

1

Функции load ничего не возвращает, то есть возвращает undefined. И вы войдете это undefined здесь:

console.log(p1.load()); 

Вы, вероятно, просто хотите

p1.load(); 
0

Возвращаемое значение console.log ВСЕГДА неопределенными. Он печатает на консоли, но фактически ничего не возвращает.

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

Также почему вы распечатываете результат функции, которая уже распечатывает нужную вам информацию?

0

привет, вам не нужно слишком сильно напрягаться по поводу этого неопределенного. Ваш код правильный, и он отлично работает в любом js-файле.

Это не определено, когда вы делаете экземпляр класса человека.

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());; 
Смежные вопросы