Javascript 将function.call与此参数一起用于函数参数

Javascript 将function.call与此参数一起用于函数参数,javascript,arrays,arguments,this,Javascript,Arrays,Arguments,This,下面我有一个简单的例子,它创建了一个对象构造函数。有一个add方法,它试图通过调用Array.prototype.forEach方法来迭代arguments集合 这项技术是有效的,但是我对这个值有一个问题 我采用了将this赋值给实变量(this)的技巧,即在内部函数中使用实值。这是可行的,但我认为应该更简单一些 根据,我应该能够在开始时使用可选的thisArg调用它。我已经在add2方法中尝试过这一点。这不管用 在调用方法中为此参数包含新值的正确方法是什么 函数集合(){ 这个数据=[];

下面我有一个简单的例子,它创建了一个对象构造函数。有一个
add
方法,它试图通过调用
Array.prototype.forEach
方法来迭代
arguments
集合

这项技术是有效的,但是我对
这个值有一个问题

我采用了将
this
赋值给实变量(
this
)的技巧,即在内部函数中使用实值。这是可行的,但我认为应该更简单一些

根据,我应该能够在开始时使用可选的
thisArg
调用它。我已经在
add2
方法中尝试过这一点。这不管用

调用
方法中为
参数包含新值的正确方法是什么

函数集合(){
这个数据=[];
}
收集.原型={
构造函数:集合,
添加(){
var This=此;
Array.prototype.forEach.call(参数、函数(值){
这个.data.push(值);
});
},
Add 2(){
Array.prototype.forEach.call(this、参数、函数(值){
这个.data.push(值);
});
},
}
var c=新集合();
c、 添加(‘苹果’、‘香蕉’);

警报(c.data)
forEach
为该
获取一个可选参数,它将在回调中使用该参数。如果您不能使用箭头功能,它应该是一个不错的选择:

函数集合(){
这个数据=[];
}
收集.原型={
构造函数:集合,
Add 2(){
Array.prototype.forEach.call(参数、函数(值){
这个.data.push(值);

},本页)//只需使用箭头函数,从外部范围继承它们的<代码>这个<代码>,而不是从它们的调用上下文中获取。还考虑使用参数REST语法而不是<代码>参数> /Calp>。实际上,我正在编写一个填充箭头函数的多填充程序。我知道它们会使生活更容易。如果您不能使用ARROR。w函数,然后
that=this
,然后在以后引用
that
几乎是唯一的其他方法。但是如果可能的话,用最新的语法编写,然后在以后使用Babel进行传输,这样做会减少这样的麻烦。我还不能接受答案(由于某种原因,我不得不再等5分钟),但是谢谢。你介意检查一下这个链接上的信息,看看我是否误解了它吗?我确信它建议应该首先使用
this
参数。@Manngo,是的,这有点让人困惑。在上面的例子中,
this
被传递到
forEach()
而不是
call()
。这是这里列出的最后一个可选参数:我现在明白了。参数列表属于
forEach
方法,而不是
call
方法。再次感谢。