如何在javascript中创建参数数目未知的对象?

如何在javascript中创建参数数目未知的对象?,javascript,Javascript,我必须创建一个表示任意大小的多项式的对象: var polynom = function() { //code ... }; p1 = polynom(1,6,3,4); // 1x^6 + 3x^4 p2 = polynom(3,5,2,1,7,3); // 3x^5 + 2x^1 + 7x^3 我想做的是编写一个方法,返回一个包含所有这些参数的数组。我读了一些关于这个的文章,所以我写了这样的东西: var polynom = function() { getArgumen

我必须创建一个表示任意大小的多项式的对象:

var polynom = function() {
    //code ...
};
p1 = polynom(1,6,3,4); // 1x^6 + 3x^4
p2 = polynom(3,5,2,1,7,3); // 3x^5 + 2x^1 + 7x^3
我想做的是编写一个方法,返回一个包含所有这些参数的数组。我读了一些关于这个的文章,所以我写了这样的东西:

var polynom = function() {

    getArguments = function() {
    array = [];
    for(var i = 0; i < this.arguments.size; i++) array.push(this.arguments[i]);
    return array;
  }
};

const p1 = new polynom(3,2);
console.log(p1.getArguments());

我是javascript新手,如果有什么问题,非常抱歉,但是我希望能得到一些帮助来编写这个方法

您要找的是

var polynom=function(…args){
this.getArguments=函数(){
var数组=[];
对于(vari=0;ilog(p1.getArguments())
this.getArguments=…
<代码>常数p1=新的多项式(3,2)。。。你的
polynom
对象对它的参数没有任何作用,因此,它们是丢失的。你只是在所有函数之前写“this”吗?我这样做了,但仍然是同样的错误,这是作为数组获取函数参数的一种更简单的方法:
[].prototype.slice.call(参数)@JaromandaX你知道我如何修复它吗?你不需要循环。
args
已经是一个数组。只要返回它,或者
.slice()
它,如果你想要一个浅拷贝。
..
不是在所有浏览器中都可用(我叫你出来,Internet Explorder),但是@rockstar是对的,args已经是一个数组了,谢谢你。如果你要使用ES2016+。。。使用所有函数
class polynom{constructor(…args){this.args=args;}getArguments(){返回this.args;}}函数polynom(){this.args=[].slice.call(arguments);}polynom.prototype.getArguments=function(){return this.args;}-这都是JavaScript 101的东西!
TypeError: Cannot read property 'getArguments' of undefined
    at eval:14:16
    at eval
    at new Promise