gpt4 book ai didi

javascript - 创建构造函数的构造函数 (JavaScript)

转载 作者:行者123 更新时间:2023-12-03 07:39:26 26 4
gpt4 key购买 nike

在我正在进行的模拟中,我将有一个 Element 类,我将使用有关该元素属性的参数(熔化和沸腾温度、与其他元素的 react 规则、颜色、密度等)来调用它.) 创建元素的基本类型(水、氧、碳等)。由此,我只想用我拥有的水、氧气和碳模板创建新的“原子”。我想知道是否有办法使用构造函数(Element)来创建新的构造函数(如 Water)?例如,我希望能够做这样的事情。

var Element = function(/* params */) {
// common element properties and basic functions
}
var Water = new Element(); // create the new element
var WaterAtom = new Water(); // create the atom (an instance of the element)
// draw the atom, manipulate it, react with other atoms, etc.

我基本上是在问,一个构造函数可以创建另一个构造函数吗?我希望这样,这样我就不必创建大量的 .prototype 代码来扩展基本 Element 类。

最佳答案

我想你正在寻找的是

function Element(…) {
// init properties that all elements share
}
Element.prototype.… = function(…) { … }; // add all methods of elements

Element.makeType = function(rules) {
function ElementType(…) {
Element.call(this, …);
}
ElementType.prototype = Object.create(Element.prototype);
ElementType.prototype.constructor = ElementType;
ElementType.prototype.rules = rules;
return ElementType;
};

这样你就可以像这样使用它

var Water = Element.makeType(function(…) {
// do whatever makes water special
});

var drop = new Water(…);

关于javascript - 创建构造函数的构造函数 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470787/

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