2016-04-19 3 views
0
var myCar2 = { 

    maxSpeed: 70, 
    driver: "Arnold", 

    drive: function(speed, time) { 
     console.log("speed " + (speed * time)); 
    }, 

    logbook: function(a , b) {  
     console.log("max speed " + this.maxSpeed + " " + this.drive(a , b)); 
    } 
}; 

myCar2.logbook(3 , 6); 

Если я запускаю этот код this.drive(a , b) является undefined. Как передать переменные функции drive(), используя logbook()?Как передать переменный другие функции внутри объекта в JavaScript

+2

Это должно работать нормально, как есть. Единственное, что вы *** ничего не возвращаете *** из 'drive', поэтому его возвращаемое значение' undefined'. – deceze

+1

@ Нет. Просто нет. – deceze

+0

да я не использую возврат. Спасибо, что с возвращением я получаю то, что хочу. – pZCZ

ответ

7

Вы передаете переменные на диск, и они определены внутри него. Если бы они не были тогда, вы бы не получили скорость 18 в выводе, вы бы получили скорость NaN.

Значение undefined является возвращением значения drive, что потому, что вы не поставить return заявления в этой функции.

Смежные вопросы