学习Javascript:"这个"关键字vs"参数"宾语

时间:2015-07-20 21:00:50

标签: javascript arguments this

这里的新手,试图了解thisarguments的不同之处以及在哪种情况下使用的是另一种情况?

例如,这个原型函数将使用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;经常被误解或忽视,可能是因为它出现的频率......

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:-1)

this是调用该函数的对象。例如,如果您调用了函数myObj.foo(),则在foo的范围内,this会引用myObjthis的值有时可能很棘手。例如,假设您这样做了:

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对象来支持重载版本的函数。