【发布时间】:2020-08-15 02:49:16
【问题描述】:
在 HTML 的 Javascript 中,如何创建一个类的新对象实例,其中类中新对象的对象名称/变量名称来自输入元素的文本值?
在这个例子中... 我有一个名为 myClass 的类,我创建了一个名为 Chickens 的 myClass 对象实例,其属性“myProperty”的值为 100。假设我想在浏览器中使用名称输入元素来创建一个新的 myClass 对象实例,例如Dogs 并使用属性输入元素将其 myProperty 值设置为 49。
这是我的例子:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input id="name" placeholder="name">
<input id="property" placeholder="property">
<button id="btn"></button>
</body>
<script src="rhythm-class.js"></script>
</html>
和
function myClass() {
this.myProperty
}
let chickens = new myClass()
chickens.myProperty = '100'
console.log(chickens)
let currObj = null
let currProp = null
document.querySelector('#name').addEventListener('change', (e)=> {
console.log(e.target.value)
currObj = e.target.value
let `${e.target.value}` = new myClass
})
document.querySelector('#property').addEventListener('change', (e)=> {
console.log(e.target.value)
currentProp = e.target.value
let `${currentObj}`.testProperty = e.target.value
})
document.querySelector('#btn').addEventListener('click', ()=> {
console.log(`${currentObj}`.testProperty)
})
【问题讨论】:
-
dogs.myProperty=document.getElementById("property").value 应该为您检索一个值。
-
如何通过在名称输入元素中输入狗来创建狗?
-
从获取名称输入中您能做的最多的事情就是创建一个具有该值的字符串变量的类。
-
您不能动态创建变量名。你真正想要的是将你的类的实例放在一个对象或
Map中,你可以在其中给每个实例起自己的名字。不要以let dog = new myClass, cat = new myClass;开头,而是以const animals = {dog: new myClass, cat: new myClass};开头
标签: javascript html class object dom-events