请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于arguments的使用

var length = 10;
function fn() {
  console.log(this.length);
}

var obj = { 
  method: function(fn) {
    fn();
    arguments[0]();
  }
};

obj.method(fn, 1); 

输出:10,2
请问老师,这里的2是怎么取得输出的

正在回答

2回答

var length = 10;

function fn() {

  console.log(this.length);

}

var obj = { 

  method: function(fn) {

      console.log('arguments[0]...', arguments[0])   

      console.log('arguments.length...', arguments.length)

      arguments[0](); // 执行函数会打印 this.length ,值即上一行的 arguments.length

  }

};

obj.method(fn, 1); 


看我加的两行 console.log 和一行注释吧,应该就能明白了。

0 回复 有任何疑惑可以回复我~
  • 提问者 美乐居士 #1
    get,谢谢老师
    回复 有任何疑惑可以回复我~ 2019-09-10 23:10:57
双越 2019-09-09 23:10:08

“arguments0;”—— 这里是不是写错了?我是不太理解这种写法

你先把代码格式化一下吧,参考 http://coding.imooc.com/learn/questiondetail/141504.html 这种格式化形式

0 回复 有任何疑惑可以回复我~
  • 提问者 美乐居士 #1
    不好意思,是错了。应该是arguments[0]()
    回复 有任何疑惑可以回复我~ 2019-09-09 23:16:53
  • 双越 回复 提问者 美乐居士 #2
    我把你代码复制浏览器执行,只输入了 10 ,没有 2 。
    回复 有任何疑惑可以回复我~ 2019-09-10 08:45:57
  • 提问者 美乐居士 回复 双越 #3
    老师,我问题那里重新格式代码和上传运行截图了,麻烦您重新看下,有输出10和2
    回复 有任何疑惑可以回复我~ 2019-09-10 09:57:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信