采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
var length = 10; function fn() { console.log(this.length); } var obj = { method: function(fn) { fn(); arguments[0](); } }; obj.method(fn, 1);
输出:10,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 和一行注释吧,应该就能明白了。
get,谢谢老师
“arguments0;”—— 这里是不是写错了?我是不太理解这种写法
你先把代码格式化一下吧,参考 http://coding.imooc.com/learn/questiondetail/141504.html 这种格式化形式
不好意思,是错了。应该是arguments[0]()
我把你代码复制浏览器执行,只输入了 10 ,没有 2 。
老师,我问题那里重新格式代码和上传运行截图了,麻烦您重新看下,有输出10和2
登录后可查看更多问答,登录/注册
BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率
986 19
959 17
1.1k 11
1.1k 10
1.0k 10