我想创建一个函数,它接受一个类示例/类名称并返回一定数量的所述类的示例的集合,初始化和填充。到目前为止,我已经提出了这个解决方案:
Function getCollectionObj(className as string) As Collection
Dim obj As Variant
Dim result As Collection
Dim objType As String
Dim I
For I = 1 To 5
'selecting the type of a class based on string name
Select Case className
Case "Cls1"
Set obj = New Cls1
Case "Cls2"
Set obj = New Cls2
Case "DocumentStart"
Set obj = New Cls3
End Select
'some code handling the exemplar of the object.
result.add obj
Next I
Set getCollectionObj = result
End …Run Code Online (Sandbox Code Playgroud) HTML片段
<div id="container">
<span class="no"></span>
<span class="yes"></span>
<span class="no"></span>
<span class="no"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
因此,一个getter会返回一个元素.yes并提供延迟的评估(我认为这是术语,对吧?
class Something{
constructor(){
this.elem = container;
}
get childYes(){
let span = this.elem.querySelector(".yes");
this.childYes = span;//Cannot set property clientName of #<Docum> which has only a getter
return span;
}
}
var object = new Something();
console.log(object.childYes);
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加一个空的setter,它可以正常工作:
class Something{
constructor(){
this.elem = container;
}
get childYes(){
let span = this.elem.querySelector(".yes");
this.childYes = span;
return span;
}
set childYes(a){};
}
var object = new Something();
console.log(object.childYes); …Run Code Online (Sandbox Code Playgroud)