我正试图将一个函数传递给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);
答案 0 :(得分:2)
虽然这种方法对我有些奇怪,但您要做的是将函数作为参数传递给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);
答案 1 :(得分:2)
只需使用 string interpolation 来引用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函数仅返回一个字符串,则更干净的方法是像使用dance
字符串那样,在sing()
参数本身中引用song
字符串。 / p>
下面,我像您一样创建了一个名为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>
答案 2 :(得分:0)
JavaScript没有打印到屏幕的概念,这是一种粗略的调试方式,但是具有实现相同目的的控制台方法。
Javascript具有称为arguments
的特殊关键字,该关键字包含传递给函数的所有值。因此,以下代码应打印传递给函数的所有参数:
function hello(a, b, c) {
console.log(arguments);
}
hello("World", 42, true);
答案 3 :(得分:0)
您无需在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"))