Как вывести на экран все параметры функции - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь передать функцию в createTextNode, чтобы я напечатал на экране: i am singing Let It GO & i am dancing as well while singing, которые передаются в функцию через параметры.

Проблема в том, что толькопоявляется первый аргумент.

function sing(song ,dance){
   return`i am singing ${song}`
   callback();
 }

function dance(){
   return "i am dancing as well while singing";
}

let singing=sing("Let It GO","dance");
const elP=document.createElement("p");
const elT=document.createTextNode(singing)
elP.appendChild(elT);    
document.body.appendChild(elP);

Ответы [ 4 ]

0 голосов
/ 29 декабря 2018

Вам не нужно использовать танец в качестве аргумента в sing ()

function dance(){
   return "i am dancing as well while singing.";
}

function sing(song){
   var c = dance();
   return "i am singing " + song + "<br>" + c;
}


document.write(sing("foo"))
0 голосов
/ 29 декабря 2018

Хотя этот подход немного странный для меня, вам нужно передать функцию в качестве аргумента функции sing и затем вызвать этот аргумент:

function sing(song, callback){
   return`i am singing ${song} ${callback()}`
 }

function dance(){
   return "i am dancing as well while singing";
}

let singing=sing("Let It GO", dance);
const elP=document.createElement("p");
const elT=document.createTextNode(singing)
elP.appendChild(elT);    
document.body.appendChild(elP);
0 голосов
/ 29 декабря 2018

Просто укажите dance, используя строковую интерполяцию так же, как вы указали song вот так:

function sing(song ,dance){
   return `i am singing ${song}, ${dance}`;
}
function dance(){
   return "i am dancing as well while singing";
}

let singing=sing("Let It GO", dance());
const elP=document.createElement("p");
const elT=document.createTextNode(singing)
elP.appendChild(elT);    
document.body.appendChild(elP);

Однако, если функция танца возвращает только строку, более понятный подход - ссылаться на строку dance в самом параметре sing(), как высделал со строкой song.

В следующем я создал функцию с именем sing, как вы это сделали, и просто использовал ${song} и ${dance} для получения параметров, введите значения параметров в полеФункция сама заключает скобки в скобки и использует их где угодно. Может ли это быть в журнале консоли или div или окне предупреждения .

Установите этот флажок jsFiddle или запустите фрагмент кода ниже, чтобы увидеть результаты следующего кода:

var div = document.getElementById("output");

function sing(song, dance) {
  div.innerHTML =  `<p>The song is: <strong>${song}</strong> and the dance is: <strong>${dance}</strong></p>`
}

sing("HipHop", "BreakDance");
<div id="output"></div>
0 голосов
/ 29 декабря 2018

Javascript не имеет концепции печати на экран, грубый способ отладки, но имеет консольные методы, которые служат той же цели.

Javascript имеет специальные ключевые слова, называемые arguments, которые содержат все значения, передаваемые вфункция.Поэтому следующий код должен напечатать все аргументы, переданные вашей функции:

function hello(a, b, c) {
  console.log(arguments);
}

hello("World", 42, true);
...