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

数组里放函数再调用

数组里放函数再调用

qq_杀意隆_0 2017-12-06 08:55:11
var arr=[alert]; arr[0]('hi!');//直接调用,报错:"Uncaught TypeError: Illegal invocation" var b=arr[0]; b('hi!');//这样就可以运行,不知何故??
查看完整描述

1 回答

已采纳
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

//改变this的指向
arr[0]('hi!');//this指向的是alert函数对象本身,而alert方法是属于window对象的,会引发TypeError。
arr[0].call(this,'hi') //或者改为arr[0].call(window,'hi')即可正确执行。


查看完整回答
1 反对 回复 2017-12-06
点击展开后面1
  • 1 回答
  • 1 关注
  • 1491 浏览
慕课专栏
更多

添加回答

举报

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