正在回答 回答被采纳积分+1
2回答
好帮手慕糖
2018-02-06 10:01:22
你好,这里主要是改变this指向的问题,第一段代码中,add.call(sub, 3, 1);实际执行的就是add,因为add是简单的引用类型,所以就直接输出了。而animal.showName.call(cat, ",");中,执行animal.showName这个方法,它的this指向被改变,指向了Cat(),所以最后输出了Cat(),下面是把第一个例子进行了下修改,可以结合理解下:
function add(a, b){
alert(a + b);
console.log(this.name)
}
function sub(a, b){
alert(a - b);
this.name="sub"
}
add.call(sub, 3, 1);祝学习愉快~
进击JavaScript核心 2018
- 参与学习 466 人
- 提交作业 74 份
- 解答问题 635 个
JavaScript不仅能实现静态页面到动态特效的转变,还能完成数据的动态交互,但是关于js到底功能有多强大,大家还是有所期待的,本路径将带你深入到js中,一一揭开JavaScript的神秘面纱。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星