2017-02-02 6 views
1

Я изучаю JavaScript. Я пробовал приведенный ниже код, и я вижу значение объекта как неопределенное. Я ожидаю, что последний оператор консоли напечатает все значения в объекте v. Мое ожидание заключается в том, что этот оператор v.sampleFunction() вернет «Данная строка является примером строки строки примера». И я думал, что смогу напечатать то же самое, используя v.values ​​. Пожалуйста, сообщите мне, где я делаю это неправильно.Значение объекта не определено

var r; 
 
var v = new Object(); 
 

 
(function() { 
 
    // function 1 
 
    function s(sampelString) { 
 
     var t = "The given String is "+sampelString; 
 
\t return (t); 
 
    } 
 
    r = s("Sample Text"); 
 
    
 
    // Adding SampleFunction to v 
 
    v.samepleFuntion = function() { 
 
     s("Sample String Sample String"); 
 
    } 
 
})(); 
 
v.samepleFuntion(); 
 
console.log("The values in r==="+r); 
 
console.log("The values in v==="+v.values);

+0

Пожалуйста, более конкретно. Чего вы пытаетесь достичь? Где и как вы испытываете ошибку? – Utkanos

+0

Очень сложно сказать, что вы ожидаете от этого кода, и совсем не ясно, почему это написано именно так. – Pointy

+5

Умм, потому что вы не определили 'v.values' где-нибудь? Как бы то ни было, 'v' никогда не давали свойства' values' (это то, что вы пытаетесь вывести), поэтому оно не определено. –

ответ

5

Вы должны вернуть значение вызова функции

return s("Sample String Sample String"); 
//^^^^ 

var r, 
 
    v = new Object(); 
 

 
(function() { 
 
    // function 1 
 
    function s(sampelString) { 
 
     var t = "The given String is "+sampelString; 
 
     return (t); 
 
    } 
 
    r = s("Sample Text"); 
 
    
 
    // Adding SampleFunction to v 
 
    v.samepleFuntion = function() { 
 
     return s("Sample String Sample String"); 
 
     //^^^^ 
 
    } 
 
})(); 
 

 
console.log("The values in r==="+r); 
 
console.log(v.samepleFuntion()); 
 

 
console.log(Object.values(v));

+0

Как я могу сделать то же самое с помощью v.values ​​()? –

+0

вам нужна функция, назначенная 'v.values'. –

+0

Я имел в виду, что это заявление вернет мне что-нибудь? console.log (Object.values ​​(v)); –

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