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')即可正确执行。
添加回答
举报
0/150
提交
取消