Javascript 向函数添加参数

Javascript 向函数添加参数,javascript,design-patterns,Javascript,Design Patterns,我刚开始学习一些oop和设计模式,因此我有以下示例: 函数Img(imgId、imgSrc、imgClass){ this.imgId=imgId | |“”; this.imgSrc=imgSrc | |“”; this.imgClass=imgClass; 设elm=document.createElement('img'); elm.setAttribute('id',this.imgId); elm.setAttribute('src',this.imgSrc); elm.classL

我刚开始学习一些oop和设计模式,因此我有以下示例:

函数Img(imgId、imgSrc、imgClass){
this.imgId=imgId | |“”;
this.imgSrc=imgSrc | |“”;
this.imgClass=imgClass;
设elm=document.createElement('img');
elm.setAttribute('id',this.imgId);
elm.setAttribute('src',this.imgSrc);
elm.classList.add(this.imgClass);
var xyz=document.getElementById('xyz');
this.createImage=函数(){
xyz.appendChild(elm);
}
}
var flowerImg=新Img('花','http://via.placeholder.com/350x150“,”img')。createImage();
var飞机=新Img(‘飞机’,’http://via.placeholder.com/350x150“,”img img wide')。createImage()

由于空格不是类名中的有效字符,因此出现错误。而是传递单个字符串,并将其作为rest参数接收

然后可以使用扩展语法将类列表传递到
classList.add()


//接受所有课程--------v
函数Img(imgId、imgSrc、imgClass){
this.imgId=imgId | |“”;
this.imgSrc=imgSrc | |“”;
this.imgClass=imgClass;
设elm=document.createElement('img');
//elm.setAttribute('id',this.imgId);
//elm.setAttribute('src',this.imgSrc);
//这比使用`.setAttribute()短`
elm.id=this.imgId;
elm.src=this.imgSrc;
elm.classList.add(…this.imgClass);//添加所有类
var xyz=document.getElementById('xyz');
this.createImage=函数(){
xyz.appendChild(elm);
}
}
var flowerImg=新Img('花','http://via.placeholder.com/350x150“,”img')。createImage();
var飞机=新Img(‘飞机’,’http://via.placeholder.com/350x150“,”img“,”img wide“).createImage()

由于空格不是类名中的有效字符,因此出现错误。而是传递单个字符串,并将其作为rest参数接收

然后可以使用扩展语法将类列表传递到
classList.add()


//接受所有课程--------v
函数Img(imgId、imgSrc、imgClass){
this.imgId=imgId | |“”;
this.imgSrc=imgSrc | |“”;
this.imgClass=imgClass;
设elm=document.createElement('img');
//elm.setAttribute('id',this.imgId);
//elm.setAttribute('src',this.imgSrc);
//这比使用`.setAttribute()短`
elm.id=this.imgId;
elm.src=this.imgSrc;
elm.classList.add(…this.imgClass);//添加所有类
var xyz=document.getElementById('xyz');
this.createImage=函数(){
xyz.appendChild(elm);
}
}
var flowerImg=新Img('花','http://via.placeholder.com/350x150“,”img')。createImage();
var飞机=新Img(‘飞机’,’http://via.placeholder.com/350x150“,”img“,”img wide“).createImage()

您需要将类拆分为单独的字符串,并分别应用每个字符串

函数Img(imgId、imgSrc、imgClass){
this.imgId=imgId | |“”;
this.imgSrc=imgSrc | |“”;
this.imgClass=imgClass;
设elm=document.createElement('img');
elm.setAttribute('id',this.imgId);
elm.setAttribute('src',this.imgSrc);
this.imgClass.split(“”).forEach(函数(singleClass){
elm.classList.add(singleClass);
})
var xyz=document.getElementById('xyz');
this.createImage=函数(){
xyz.appendChild(elm);
}
}
var flowerImg=新Img('花','http://via.placeholder.com/350x150“,”img')。createImage();
var飞机=新Img(‘飞机’,’http://via.placeholder.com/350x150“,”img img wide')。createImage()

您需要将类拆分为单独的字符串,并分别应用每个字符串

函数Img(imgId、imgSrc、imgClass){
this.imgId=imgId | |“”;
this.imgSrc=imgSrc | |“”;
this.imgClass=imgClass;
设elm=document.createElement('img');
elm.setAttribute('id',this.imgId);
elm.setAttribute('src',this.imgSrc);
this.imgClass.split(“”).forEach(函数(singleClass){
elm.classList.add(singleClass);
})
var xyz=document.getElementById('xyz');
this.createImage=函数(){
xyz.appendChild(elm);
}
}
var flowerImg=新Img('花','http://via.placeholder.com/350x150“,”img')。createImage();
var飞机=新Img(‘飞机’,’http://via.placeholder.com/350x150“,”img img wide')。createImage()

只需使用
.className
属性即可。在那里,您可以一次设置多个类

例如:

elm.className = this.imgClass;
或者,如果已经为元素定义了一个类,只需将其与
+
运算符一起使用,但要注意,必须插入一个空格作为分隔符:

elm.className += " " + this.imgClass;

只需使用
.className
属性即可。在那里,您可以一次设置多个类

例如:

elm.className = this.imgClass;
或者,如果已经为元素定义了一个类,只需将其与
+
运算符一起使用,但要注意,必须插入一个空格作为分隔符:

elm.className += " " + this.imgClass;

Thx,还有一个问题,这是否必须是最后一个论点?年轻人:是的。另一个选项是简单地用原始字符串设置
.className
elm.className=this.imgClass
。但在我看来,这种语法更好。谢谢,我学到了一些东西。不客气。我还更新了设置
id
一个
src
属性,而不是直接使用
.setAttribute()
。Thx,还有一个问题,这是否必须是添加的最后一个参数?@youngster:是的。另一个选项是简单地用原始字符串设置
.className
elm.className=this.imgClass
。但在我看来,这种语法更好。谢谢,我学到了一些东西。不客气。我还更新了设置
id
an
src
属性,而不是直接设置