Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从类实例获取JavaScript类构造函数参数_Javascript_Typescript_Class_Oop_Ecmascript 6 - Fatal编程技术网

如何从类实例获取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是的,我想避免这种情况,所以我不必修改一堆代码,但看起来这可能是我希望该实例上可能有一个属性的唯一方法,它们将被保存在它上面。谢谢你澄清这一点。