在javascript中, function里this的指向?

在function 里面有个 this,该function分别用apply()和call()调用,this的指向?

阅读 5.6k
3 个回答

在js中,调用function的apply()或者call()可以覆盖this原先的指向。但是call()和apply()的用法略有不同,见下面两个例子:

var myObject = {};

var myFunction = function(param1, param2) {
  this.foo = param1;
  this.bar = param2;
  console.log(this);
};

myFunction.call(myObject, 'foo', 'bar'); // this 将指向 myObject

console.log(myObject) // 输出 Object {foo = 'foo', bar = 'bar'}


用apply()时,参数需要用Array

var myObject = {};

var myFunction = function(param1, param2) {
  this.foo=param1;
  this.bar=param2;
  console.log(this);
};

myFunction.apply(myObject, ['foo', 'bar']); // this 将指向 myObject
console.log(myObject); // 输出 Object {foo = 'foo', bar = 'bar'}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题