gpt4 book ai didi

javascript - 在JS类中获取构造函数的参数

转载 作者:行者123 更新时间:2023-12-01 23:19:15 26 4
gpt4 key购买 nike

如何在 JS 中获取构造函数类的参数数组?这是可能的?提前致谢。

class Product {
constructor(id, name, price, category, stock){
this.id = id;
this.name = name;
this.price = price;
this.category = category;
this.stock = stock;
}
};

console.log(Product.constructor.params);

//expected output = ['id', 'name', 'price', 'category', 'stock'];

最佳答案

受@Porter answer 和@evolutionxbox 的启发,我认为可靠的方法是像这样使用.match():

class Product {
constructor(id, name, price, category, stock, unusedArgument) {
this.id = id;
this.name = name;
this.price = price;
this.category = category;
this.stock = stock;
}
}

class Noarguments {
constructor() {
}
}

// A function
function getClassContructorParams(obj){
let match = obj.toString().match(/constructor\((.+)\)/)

if(match && match[1]){
return match[1].split(",");
}

// If no match
return []
}


console.log(getClassContructorParams(Product))

/// Testing a class with no constructor arguments will return an empty array
console.log(getClassContructorParams(Noarguments))

我之前的回答是返回对象属性,这可能与构造函数中使用的参数不同......

现在使用 .match() 将确保返回的确实是 constructor 参数。

关于javascript - 在JS类中获取构造函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68331836/

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