为了账号安全,请及时绑定邮箱和手机立即绑定

问一个apply和call问题

问一个apply和call问题

var func = function(arg1, arg2) {     };func.call(this, arg1, arg2);func.apply(this, [arg1, arg2])这里的this指的是不是func函数
查看完整描述

2 回答

已采纳
?
Samaritan

TA贡献61条经验 获得超38个赞

在 js 中 this 代表的是当前的 context,也就是执行环境,你的例子如果直接卸载最外层,this 就是 window

使用 call 或者 apply 第一个参数是一个对象(你例子中传入的是 this),这个对象的作用是作为 func 函数执行的环境

window.x = 0;

function func(){
  alert(this.x);
}

var obj = {
  x: 1,
  m: func
};

obj.func.apply(this); // 0
obj.func.apply(window); // 0
obj.func.apply(obj); // 1


查看完整回答
反对 回复 2017-10-14
?
cxxyjsj

TA贡献119条经验 获得超22个赞

call和apply方法的第一个参数是指方法的作用对象,也就是func中this的值。

可以类比java中Method.invoke的第一个参数。

查看完整回答
反对 回复 2017-10-14
  • 2 回答
  • 0 关注
  • 1214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信