gpt4 book ai didi

javascript - 如何在 javascript 中动态实例化一个类?

转载 作者:行者123 更新时间:2023-11-30 07:29:31 25 4
gpt4 key购买 nike

我刚开始使用 Javascript 中的类,但遇到了瓶颈。我到处寻找一个教程,它比简单地如何构建一个类(通常是 Animal)然后扩展该类并让一个方法做一些事情(Dog alert('Bark');)更进一步。

我创建了一个我希望用户能够实例化的类(这个词正确吗)?例如,在我的程序中,第一阶段是让用户为类命名,然后开始填充类中的各种变量。完成后,他们可能会多次重复。

经过编辑的完整代码示例:

function Blind() {
this.Type = null;
this.Colour = null;
this.Width = 500;
this.Drop = 500;
this.Price = 0;
}

function BlindAluminium() {
Blind.call(this);
this.Type = 'aluminium';
this.SubType = null;
this.StackHeight = 0;
}

那是定义对象的代码。

这是允许用户定义新对象的 HTML:

<form id="create_blind_form" name="create_blind_form" method="post" action="">
<label for="blind_name">Blind Name: <input name="blind_name" id="blind_name" type="text" /></label>
<input name="submit" type="submit" value="Submit" />
</form>

在提交我需要创建一个新对象时,伪代码如下所示:

var *blind_name_from_the_form* = new BlindAluminium();

那以后我希望这样操作:

*blind_name_from_the_form*.subType = '50mm';

最佳答案

简短的回答是您将不得不使用 eval .如果你想调用一个只有在运行时才知道的名字的函数(或类),没有办法绕过它。

eval("var className = new MyObject();");

话虽如此,您可能需要考虑一些替代方案。人们会给你各种各样的理由来解释为什么 eval 不好,这些都是真的。但对我来说,沿着这条路走下去会很难管理。是的,深入了解 Crockford。

是否可以使用 Javascript 的原型(prototype)继承,而不是尝试使用笨拙的类?鉴于类在 Javascript 中没有任何意义,如果它们不适合问题,就真的没有理由使用它们。

关于javascript - 如何在 javascript 中动态实例化一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2755841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com