这里的新手,试图了解this
和arguments
的不同之处以及在哪种情况下使用的是另一种情况?
例如,这个原型函数将使用this
来执行一些操作:
myObj.prototype.myFunc = function(){
return this.(some manipulation);
}
类似地,arguments
用于遍历要操纵的每个参数:
function myFunc() {
for (var i = 0, i < arguments.length; i++){
return arguments[i].(some manipulation)
}
}
基本上在这两个例子中,两个看起来是可以互换的,作为进一步操作的参数被访问?我一直在阅读Stack Overflow的各种解释(例如this),但在实践中,我仍然很困惑在应用程序/上下文时使用哪些。当我在搜索引擎上搜索时,&#34;这个&#34;经常被误解或忽视,可能是因为它出现的频率......
非常感谢任何帮助!
答案 0 :(得分:-1)
this
是调用该函数的对象。例如,如果您调用了函数myObj.foo()
,则在foo
的范围内,this
会引用myObj
。 this
的值有时可能很棘手。例如,假设您这样做了:
var fooFn = myObj.foo;
fooFn();
在这种情况下,this
不会引用myObj
,而是引用全局窗口对象。
简而言之,那就是this
。
对于arguments
,它是传递给函数的所有参数的类似对象(不是真正的数组)。假设你有一个函数function myFn(foo, bar)
。您可以将两个以上的参数传递给myFn
。如果你打电话给myFn(1, 2, 3)
,你会如何访问第三个参数?这就是arguments
的用途。在这种情况下,arguments
将包含3个元素:1(对应于foo
参数),2(对应于bar
参数)和3(额外参数)。
您可以使用arguments
对象来支持重载版本的函数。