javascript - 关于this的问题,this指代的是window还是callsum对象?
黄舟
黄舟 2017-04-10 15:15:42
[JavaScript讨论组]

function sum(num1,num2) {
return num1+num2;
}
function callsum(num1,num2) {
return sum.apply(this,arguments)
}
alert(callsum(1,2)); //3

callsum内部的sum.apply(this,arguments)中this指代的是什么?我知道单单在全局执行sum.apply(this,arguments),this代表window,但到了函数里面this是什么呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(5)
大家讲道理

在这个例子里 this 依然是 window,因为调用 callsum() 的时候没有上下文(context)(更正一下:上下文是 window)。如果是:

var a = {};
a.fun = callsum;
a.fun();

这时候 callsum 里的 this 指向 a

天蓬老师

大家遗漏了一点,在es5严格模式下,函数中的this 是undefined

巴扎黑

this为调用所在函数的对象,如果这个对象为null/undefined,那么指向window全局对象

迷茫

window.alert(callsum(1,2));

PHP中文网

参考:
Function context 函数上下文

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号