javascript - 帮忙解析下一段js代码,,
PHPz
PHPz 2017-04-11 12:18:12
[JavaScript讨论组]
var length = 10;
function fn() {
    console.log(this.length);
}
var obj = {
    length: 5,
    method: function() {
        fn();
        arguments[0]();
    }
};

obj.method(fn, 1);

结果:10 2 为神马??

PHPz
PHPz

学习是最好的投资!

全部回复(3)
怪我咯

第一个fn的this指向的是window,第二个fn的this指向的是对象!

PHP中文网

楼主代码敲错了不少

mothod: function(fn2){
       fn();
       arguments[0]();
       fn2();
   }

输出 10 2 10
因为arguments是Javascript的一个内置对象,是一个类数组,也有this,这里的this就是arguments的this

伊谢尔伦

第一个length是自定义变量length,第二个length是method方法内置对象arguments的长度,你传入了两个参数(fn,1),也就是数组arguments = [fn, 1];

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

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