如何在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;i log(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;}}用于Internet Exploder的代码>函数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