【发布时间】:2015-04-07 23:02:32
【问题描述】:
伙计们,我想了解为什么 call 真的有效,我是面向对象的 java 脚本、this 关键字和 call 之类的函数的新手。
我在网上的一个程序中找到了以下行:
this.tabs = [].slice.call( this.el.querySelectorAll( 'nav > ul > li' );
我尝试理解每个功能并且非常成功,实际上下面的线程帮助了我:
但是后来理解调用有点困难,尤其是在查看MDN call doc's 之后。
我不太明白 MDN 文档中的这个例子:
使用调用来调用匿名函数:
var animals = [
{ species: 'Lion', name: 'King' },
{ species: 'Whale', name: 'Fail' }
];
for (var i = 0; i < animals.length; i++) {
(function(i) {
this.print = function() {
console.log('#' + i + ' ' + this.species
+ ': ' + this.name);
}
this.print();
}).call(animals[i], i);
}
现在我理解了 Object 字面量,我理解了 for 循环,我理解了 IIFE,我理解了 this.print();被调用的函数,
但我不明白的是以下行:
call(animals[i], i);
以及传递给它的参数。
亲切的问候。
【问题讨论】:
标签: javascript