如何从类实例中获取JavaScript类构造函数参数

问题描述 投票:1回答:1

我有一堆用不同数量的参数调用的类:

class Square {
    height;
    width;
    constructor(height, width) {
        this.height = height;
        this.width = width;
    }
}

这些类的实例存储在数组中以保留它们的时间轴:

const sq = new Square(22, 23);
const history = [sq];

我想找到一种从类构造函数获取arguments的方法,据我所知:

history[0].contructor.arguments 

会导致错误:

VM448:1未捕获的TypeError:'caller','callee'和'arguments'严格模式功能或调用对象的参数对象在:1:24

我想从构造函数中获取arguments关键字的内容(所以像数组这样的对象同时具有height和width参数)。

我意识到我可以使用超类并将其扩展到我需要此功能的所有类中,但理想情况下是希望避免对其进行修改。有什么想法吗?

javascript typescript class oop ecmascript-6
1个回答
1
投票

arguments对象在本地范围内为其所属的功能。除非您将其from传递给其他函数,否则无法在该函数外部访问。

如果您想知道哪些参数是从其他地方传递给构造函数的,那么您需要显式传递它们或让构造函数将它们存储在某个位置。

© www.soinside.com 2019 - 2024. All rights reserved.