Почему, когда вы вызываете toString() для функции с помощью quokka, она возвращает строку с добавленными дополнительными переменными?

Я учусь использовать прототипы для расширения функциональности объектов. Но когда дело доходит до функций, я столкнулся с препятствием: когда я записываю функцию в строку, она возвращает то, чего я не понимаю. Например, учитывая:

function foo() {
    var a = 1
    var b = 2
    return a + b
}
console.log( foo.toString() )

Вы получаете:

`function foo() { 
    var $_$c = $_$wf(1); 
    var a = ($_$w(1, 130, $_$c), 1); 
    var b = ($_$w(1, 131, $_$c), 2); 
    return $_$w(1, 132, $_$c), a + b; 
}`

Я ожидал получить:

`function foo() {
    var a = 1
    var b = 2
    return a + b
}`

Почему?

редактировать

2 ответа

Я пробую этот пример вернуть

`function foo() { 
    var $_$c = $_$wf(1); 
    var a = ($_$w(1, 130, $_$c), 1); 
    var b = ($_$w(1, 131, $_$c), 2); 
    return $_$w(1, 132, $_$c), a + b; 
}`

а затем я создал объект и поместил в него функцию и попытался вернуть его как toString, а также он работает правильно

Попробуй это:

function foo() {
    var a = 1
    var b = 2
    return a + b
}

console.log(foo);

let x = foo.toString();
console.log(typeof x) // This should return a string

Когда вы печатаете 'x', он также должен выдавать код в виде строки.

Другие вопросы по тегам