javaweb开发-js代码中的function.call的参数

<script type="text/javascript">
window.color = "透明";
var testObj = { color: "红色" };

function testFuc() {
alert(this.color);
}

$(function () {
1.testFuc(); //弹出“透明”
2.testFuc(this); //弹出“undefined”
3.testFuc.call(this.parent); //弹出“透明”
4.testFuc.call(window); //弹出“透明”
5.testFuc.call(testObj); //弹出“红色”
});
</script>
复制代码
上面这段代码演示了call的作用。第一个函数调用,this指向了window,所以弹出了window的color属性。

第二个函数可能有些朋友以为也会弹出透明,但是请先确定我们的函数运行在$(function(){});中,这个jQuery的函数,了解jQuery的朋友都很清楚,在

$(function(){});中this的作用域指向的是document,然后我们调用testFunc,要弹出document的color,当然是未定义的。

第三个函数将testFunc的this指向了document的亲爹window,弹出window的color当然也是没有问题的。

第四个函数就更加直白了,把window传进去了

第五个函数,将testFunc的this指向了testObj,弹出了红色。

转载于:https://www.cnblogs.com/laofeng2015/p/5064076.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值