如何从类实例获取JavaScript类构造函数参数
我有一系列的类,它们被调用时带有不同数量的参数:如何从类实例获取JavaScript类构造函数参数,javascript,typescript,class,oop,ecmascript-6,Javascript,Typescript,Class,Oop,Ecmascript 6,我有一系列的类,它们被调用时带有不同数量的参数: class Square { height; width; constructor(height, width) { this.height = height; this.width = width; } } 这些类的实例存储在一个数组中,以保留它们的时间轴: const sq = new Square(22, 23); const history = [sq]; 我想找到一种从
class Square {
height;
width;
constructor(height, width) {
this.height = height;
this.width = width;
}
}
这些类的实例存储在一个数组中,以保留它们的时间轴:
const sq = new Square(22, 23);
const history = [sq];
我想找到一种从类构造函数中获取参数的方法,这是我得到的:
history[0].contructor.arguments
这会导致错误:
VM448:1未捕获类型错误:“调用者”、“被调用者”和“参数”
在严格模式函数或
用于调用它们的参数对象
时间:1:24
我想从构造器中获取参数
关键字的内容(因此是同时具有高度和宽度参数的类似数组的对象)
我意识到我可以使用一个超级类,并将其扩展到我需要此功能的所有类中,但理想情况下我希望避免修改它们。有什么想法吗?参数
对象的作用域是它所属的函数的局部作用域。除非从该函数的其他位置传递,否则无法在该函数外部访问它
如果您想知道从其他地方传递给构造函数的参数是什么,那么您需要显式地传递它们,或者让构造函数将它们存储在某个地方。从构造函数获取参数是什么意思?您想检查它需要多少个参数,或者用什么调用它?后者不应该是可能的。如果你想检查构造函数得到了什么参数,为什么不简单地将它们存储在构造的对象上呢?类似于
这样的东西。_arguments=[…arguments]
?@VLAZ我希望该实例可以将其存储在某个秘密的dunder属性中。@Something是的,我想避免这种情况,所以我不必修改一堆代码,但看起来这可能是我希望该实例上可能有一个属性的唯一方法,它们将被保存在它上面。谢谢你澄清这一点。