合理难以描述,可能最好通过代码。
function Base() {}
Base.prototype = function() {
// I am a constructor
}
const baseInstance = new Base()
const secondInstance = new baseInstance() // baseInstance is not a constructor
我理解如果我将构造函数设为.prototype
的命名属性会非常简单,但我希望能够在我的代码中执行上面的模式。有可能吗?
答案 0 :(得分:0)
我想我已经解决了。这有点像黑客攻击。只需将Object.assign()
插入构造函数中即可。
function Base() {
return Object.assign(
function SecondConstructor() {},
Base.prototype
)
}
Base.prototype = function() {
// This can now have properties which
// will be attached to the constructor
}
const baseInstance = new Base()
// baseInstance is now a constructor
const secondInstance = new baseInstance()
未经测试,但我在我的代码中使用了类似的概念。
享受!